如何让一个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/
希望能帮到你
我打算制作一个 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/
希望能帮到你