我正在嘗試動畫一個簡單的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