在我们的游戏项目中,我们确实将计时器循环设置为每秒触发约 20 次(与应用程序帧速率相同)。我们用它来移动一些精灵。
我想知道这是否会导致问题,我们应该使用 EnterFrame 事件处理程序进行更新?
我的印象是,定时器循环运行得比应用程序帧速率更快可能会导致问题......是这种情况吗?
作为更新,尝试在 EnterFrame 上执行此操作会导致非常奇怪的问题。它不再是每 75 毫秒一帧,而是突然跳到 25 毫秒。注意,这不仅仅是我们的计算claimed帧速率不同,动画突然加速到疯狂的速率。
我会选择 Enter 帧,在某些特殊情况下,有两个“循环”可能很有用,一个用于逻辑,一个用于视觉效果,但对于大多数游戏,我坚持使用 Enter 帧事件侦听器。有一个单独的计时器来移动你的东西是有点不必要的,因为将其设置为除帧速率之外的任何值都会使运动变得不稳定或不可见(因为框架不会重新绘制)。
然而,需要考虑的一件事是将逻辑与帧速率分离,这最容易通过使用 getTimer(在 as2 和 as3 中均可用)来计算自上一帧以来已过期的时间并相应地调整运动或其他内容来完成。
计时器并不比输入帧事件更可靠,Flash 会尝试跟上您设置的任何速率,但如果您正在进行繁重的处理或复杂的图形,它会减慢计时器和帧速率。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)