如何让一个2D游戏物体不断往下移动

How to make a 2D game objects to move down constantly

我打算制作一个 2D android 游戏,这将需要向顶部方向无限移动,我怎样才能让 "flying" 对象继续向下,这样它看起来就像游戏的主要目标是上升, 我正在考虑制作一个按行和列移动的二维数组,它会让游戏看起来像在向上移动, 但我认为这不是一个好方法,我很乐意得到任何提示。

如果您想自己做所有事情,这是一个如何开始的小例子:

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

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

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

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

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

希望能帮到你