如何使2D游戏对象不断向下移动

时间:2018-02-19 14:59:08

标签: android 2d

我打算制作一款2D安卓游戏,它需要向顶部方向无限移动,我怎么能让“飞行”物体继续往下走,所以它看起来像游戏的主要对象是往上走 , 我正在考虑制作一个按行和列移动的2D数组,它会使游戏看起来像是在向上移动, 但我不认为这是一个好方法,我很乐意得到任何提示。

1 个答案:

答案 0 :(得分:0)

如果你想自己做所有事情,这是一个很好的例子:

public class FlyingObjects {

  private Vec2d position;
  private Vec2d velocity;

  public FlyingObjects(Vec2d pos, Vec2d velo) {
    position = pos;
    velocity = velo;
  }
  void step(float delta){
    position.x += velocity.x * delta;
    position.y += velocity.y * delta;
  }
}

你有一个飞行对象的类 当您需要多个飞行物体时,您可以将其作为接口执行,并在所有飞行物体类中继承它。

public class Main {

  static List<FlyingObjects> listOfObjectsFlyingDown = new ArrayList<>();
  private static long lastCall;

  public static void main(String[] args){
    initialization();
    lastCall = System.currentTimeMillis();
    run();
  }
  private static void initialization(){
    //add FlyingObjects to List
  }

  private static void run(){
    float delta = System.currentTimeMillis() - lastCall; //delta is the time between this and the last call of this function
    lastCall = System.currentTimeMillis();

    for(FlyingObjects o: listOfObjectsFlyingDown){
      o.step(delta);
    }
    //check collision
    //check mouse and Keyboard event
    //check if FlyingObjects position is out of the window so remove it
    //repaint screen

    run();
  }
}

这是您需要的主要游戏循环的一个小例子。在这个循环中,你可以制作所有必须每帧更新的importend内容。

如果您不想从头开始进行空洞物理,请查看jbox2d: http://www.jbox2d.org/
当你想要一个适合初学者的Android游戏开发框架时,还要看一下libgdx:https://libgdx.badlogicgames.com/

我希望我能帮到你