2017-11-25 115 views
0

在我的游戏中,我试图制作一个水平移动的精灵列表。这里是我的渲染方法:libgdx,水平移动精灵列表

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(); 
    } 

我想从列表中的一个精灵消失,一旦击中屏幕上的某个点。不幸的是,他们似乎并没有移动。这是什么原因?

在此先感谢!

回答

2

您正在创建一个全新的精灵列表,每次调用render()。他们都是从你给予他们的初始位置开始的,不管你对前一帧的精灵做了什么,现在都没有了。

将您的new ConveyorBelt()和Sprite创建循环移动到create()