HTML5画布游戏计时器
HTML5 Canvas Game Timer
如何为HTML5 Canvas游戏创建良好的计时器?我正在使用 RequestAnimationFrame( http://paulirish.com/2011/requestanimationframe-for-smart-animating/)
但是物体移动得太快了。
类似于我的代码是:
http://pastebin.com/bSHCTMmq
但是如果我按下UP_ARROW播放器不要移动一个像素,而是移动 5、8 或 10 或更多或更少的像素。如果我按下UP_ARROW玩家移动 1 个像素怎么办?
感谢您的帮助。
问题是您在每个间隔上递增值的方法会产生不一致的结果。听起来在你的情况下,RequestAnimationFrame触发得太快了,但在其他情况下 - 比如在慢速CPU上 - 它们会触发得更慢,给出不同的结果。
所以,游戏动画需要基于"绝对"时间。即,您需要"记住"按下UP_ARROW的时间,以及玩家当时的位置。然后,当您调用 update() 时,确定经过了多少时间,并根据该时间以及所需的速度(例如,每秒像素数),将播放器移动到适当的位置。它使您的代码更加复杂,但不幸的是,这就是必须完成的方式。
这个问题在网上讨论了很多。这是我找到的一篇随机文章(基于Flash,但没关系):http://www.flashgamesclassroom.com/classroom/actionscript/frame-based-vs-time-based-animation/
你可以谷歌"基于时间的游戏动画"来研究更多。
相关文章:
- 如何在窗体打开时从javascript倒计时计时器值中节省时间
- 设置倒计时计时器,IE出现问题
- MobileFirst:在客户端运行计时器作业-最佳选项
- 显示具有服务器端自动时间注销的同步倒计时计时器
- 倒计时计时器应该持续两个php页面
- 在Jquery倒计时计时器上设置每个数字的动画
- 我如何才能确保计时器设置为每天4点半,所以我不会;不用在Javascript中提及某个日期
- 如何禁用窗口.当计时器超时时,打开卸载警报
- 在Nodejs中为许多用户处理计时器
- 如果弹出窗口关闭,Javascript停止/重置计时器
- 如何在隐藏时暂停jquery计时器
- Javascript倒计时计时器倒计时未正确更新秒/分钟
- 向 html5 画布游戏添加计时器
- Createjs为游戏创建计时器
- HTML5画布游戏计时器
- javascript 游戏计时器不会重新加载
- 在 JavaScript Memory Aid 游戏中设置一分钟计时器
- 为我的游戏设置计时器
- 如何在游戏中添加计时器?
- 计时器插件的游戏