我正在尝试动画一个简单的Java游戏,其中包括一个球的运动。我目前对球的计算是:当前的X位置+ X方向*球速度,对于Y也是一样。为了确保球始终以相同的速度移动,我希望包含增量时间。目前,我有:如何在Java游戏中使用增量时间?
long time = System.currentTimeMillis();
然后在游戏圈我有
long currentTime = System.currentTimeMillis();
int changeInTime = int(time-currentTime);
time = currentTime;
我想用增量时间,以确保球在X移动1个像素,Y方向每隔30毫秒。计算changeInTime/40的移动速度比我能看到的要快,然后它会卡在角落里。有任何想法吗?
有一个整个游戏开发StackExchange网站。 http://gamedev.stackexchange.com/questions/13008/how-to-get-and-use-delta-time – WalterM
是不是你的'changeInTime'消极?不应该是'int changeInTime =(int)(currentTime-time)',也可以使用'System.nanoTime()',否则当操作系统时钟改变时你会有一些有趣的毛刺。 – user3707125