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