我有這個類:如何設置演員子類忽略平局方法的位置的位置
public class MyActor extends Actor{
TextureRegion region;
public MyActor(TextureRegion region)
{
this.region = region;
}
@Override
public void draw(Batch batch, float parentAlpha) {
super.draw(batch, parentAlpha);
batch.draw(region, 0, 0);
}
}
我利用它在這裏是這樣的:
public class MyGame implements ApplicationListener {
Stage stage;
MyActor myActor;
@Override
public void create() {
stage = new Stage(0, 0, false);
myActor = new MyActor(new TextureRegion(new Texture(
Gdx.files.internal("texture.png"))));
myActor.setPosition(200, 50);
stage.addActor(myActor);
}
@Override
public void render() {
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
stage.act(Gdx.graphics.getDeltaTime());
stage.draw();
}
}
在MyActor
類我將演員的位置設置爲(0, 0)
。我只是將它用作某種默認設置,因爲我希望能夠在舞臺上實際繪製之前改變它的位置。原因是我有幾個MyActor
的對象,我想把它們全部放在舞臺上,但在不同的位置。
所以我做了myActor.setPosition(200, 50);
,但它沒有奏效。
我的問題:如何在draw(Batch, float)
以外的位置上繪製myActor
?
但是爲什麼我們應該在Actor中使用getX(),getY()?我的意思是,爲什麼我們需要演員呢?如果我們仍然需要根據一些外部值來計算位置。 – rdbmsa
'Actor'是Scene2D的一部分,它是一個場景圖。場景圖中的每個節點都有一個相對於其父節點的本地座標系。所以getX()和getY()返回* local *座標。由此產生的立場是基於外部價值觀,但你不必關心這一點。場景圖將爲你照顧。如果您的場景中沒有實體的層次結構,那麼幾乎沒有優勢。除了能夠註冊EventListener來處理點擊等。 – noone