【发布时间】:2020-07-03 19:33:19
【问题描述】:
我想让运动独立于游戏速度。我的意思是如果我的游戏 UPS 是 60 或 30 游戏对象的速度将是相同的。如果 UPS 为 60,则玩家每刻移动一秒钟 60 ticks * (speed / 60) 像素。或者如果 UPS 是 30,那么玩家在一秒钟内移动30 ticks * (speed / 30) 像素每刻。距离是一样的。我在我的游戏中使用这种方法。
public class Bullet extends GameObject {
private double vx, vy, g;
public Bullet(double x, double y, double vx, double vy) {
this.vx = vx;
this.vy = vy;
setX(x);
setY(y);
g = 8.0 / GameContainer.getUPS();
}
public void tick() {
setX(getX() + vx);
setY(getY() + vy);
vy += g;
}
public void render(Graphics2D g) {
g.setColor(new Color(255, 128, 0));
g.fillOval((int) getX(), (int) getY(), 4, 4);
}
}
玩家的动作很好。但是当我改变我的 UPS 游戏球的速度时。
https://imgur.com/a/UePTqv3
【问题讨论】:
-
可能更适合gamedev.stackexchange.com(尽管几乎可以肯定那里已经回答了......)
标签: java game-development