我正在 Android 2.2 中构建游戏,但我很难在游戏过程中在屏幕上显示计时器并在游戏结束时将时间保存到排行榜。
我有一个游戏循环,并且我扩展了 SurfaceView 以显示我的图形。
我不认为我的游戏loop
每毫秒都能准确运行,所以我发现很难抓住时间。
我想拥有一个名为time
存储毫秒的存储变量和一个名为的方法,该方法getFormattedTime()
将获取时间为Minutes:Seconds:Milliseconds
最好的方法是什么?
您可以通过调用获取自 1970 年 1 月 1 日以来的当前时间(以毫秒为单位)System.currentTimeMillis()
。然后,您可以获取存储的值和新的 currenTimeMillis 之间的差异,以确定已经过去的毫秒数。
如果没有如您所愿,请尝试上述方法,您可以尝试此方法,但它会四舍五入
Calendar c = Calendar.getInstance();
int seconds = c.get(Calendar.SECOND);
int min= c.get(Calendar.MINUTE);
String time=min+":"+seconds
我自己解决了这个问题,方法是创建一个Timer
andTimerTask
并将它们用作一个单独的循环来进行计时。无论如何,感谢大家的帮助。
Java中有一个名为TimerTask的类。它允许在一定的时间间隔内执行活动。您可以使用此类为您的游戏应用程序创建一个计时器。