【发布时间】:2015-12-12 02:10:15
【问题描述】:
我正在尝试为一个简单的 Java 游戏制作动画,其中包括球的运动。我当前对球的计算是:当前 X 位置 + X 方向 * 球速度,对于 Y 也是如此。我想加入增量时间以确保球始终以相同的速度移动。目前我有:
long time = System.currentTimeMillis();
然后在游戏循环中我有
long currentTime = System.currentTimeMillis();
int changeInTime = int(time-currentTime);
time = currentTime;
我想使用增量时间来确保球每 30 毫秒在 X、Y 方向移动 1 个像素。计算 changeInTime/40 移动球的速度比我看到的要快,然后它卡在角落里。有什么想法吗?
【问题讨论】:
-
有一个完整的 Game Development StackExchange 网站。 gamedev.stackexchange.com/questions/13008/…
-
你的
changeInTime不是否定的吗?不应该是int changeInTime = (int) (currentTime-time),也可以使用System.nanoTime(),不然操作系统时钟变化时会出现搞笑的小故障。