在Actionscript 3中制作游戏计时器的最佳方法是什么?

时间:2010-05-27 06:55:43

标签: actionscript-3 actionscript timer

我已经构建了一个在线游戏系统,该系统依赖于一个计时器,该计时器记录玩家完成挑战需要多长时间。它需要精确到毫秒。他们的时间存储在SQL数据库中。

问题在于,当我使用Timer类时,一些玩家最终会在数据库中获得不到一秒的分数。 (这是不可能的,因为即使在完美的情况下,大多数挑战也需要至少11秒才能完成。)

我发现如果玩家打开的浏览器窗口太多,和/或计算机速度慢,那么Flash游戏的速度会慢下来实际影响计时器速度本身。计时器在屏幕上“旋转”,这样你就可以看到数字减慢了。

令人沮丧的是,我无法打开第二个线程或做一些事情以允许闪存保持准确的时间,无论程序中发生了什么。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

跟踪时间的另一种方法是在游戏开始时使用getTimer()。将结果存储在变量中。游戏结束时另一个getTimer()调用将让你计算游戏持续的毫秒数。

答案 1 :(得分:1)

计时器(理论上)与帧速率无关,因此即使播放器减慢帧速率(在重型显示更新情况下),也希望“按时”执行。当然,Timer仍然在某种程度上取决于CPU负载,并且会有一些边缘不准确。 10+秒的不准确?我对此表示怀疑。我认为要么

a)您使用的计数器计数不正确(计时器以毫秒为单位运行,而不是秒数)。如果你每隔50ms运行一次,你就可以根据它通过的标记数来计算总时间* 50ms

b)您的用户正在使用Tamper Data之类的内容暂停请求并更改其“得分”

c)游戏中还有另一个导致问题的错误。

没有示例代码就无法判断。有没有?

相关问题