在我的游戏中,我试图使精灵列表水平移动。这是我的渲染方法:
public void render() {
Gdx.gl.glClearColor(255, 255, 255, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
int speed = 3;
ConveyorBelt cnb = new ConveyorBelt();
for (int i = 0; i < 6; i++) {
Sprite s = new Sprite(img);
s.setPosition(500 - 100 * i, 100);
cnb.belt.push(s);
}
batch.begin();
for (Sprite s : cnb.belt) {
s.draw(batch);
s.setX(s.getX() + speed);
}
batch.end();
}
我希望列表中的一个精灵一旦击中屏幕上的某个点就消失。不幸的是,他们似乎没有动。那是什么原因呢?
提前致谢!
最佳答案
每次调用render()
时,您都在创建一个全新的精灵列表。它们都从您给它们的初始位置开始,而不管您对上一帧中现在消失的精灵执行了什么操作。
将您的new ConveyorBelt()
和Sprite创建循环移到create()
中。