具有requestanimationframe的Canvas鼠标事件

时间:2015-08-11 14:40:03

标签: javascript html5 canvas

我正在开发一款目标是使用所有画布的游戏。

目前我的按钮有鼠标事件(mousemove,mousedown,mouseup)。我应该直接从此事件更新我的画布按钮还是将其与requestedtionanimationframe集成?我读到鼠标事件每秒可以被调用数百次......

可能与问题无关:当触发事件时,调用具有按钮的对象来检查鼠标位置(这是由于只有最顶层的图层注册鼠标事件和预渲染的方式)。从本质上讲,它不是一个真实的'每个画布对象/按钮上的鼠标事件。

谢谢!

1 个答案:

答案 0 :(得分:1)

如果不了解更多关于游戏的内容,很难回答你的问题,但总的来说:

如果您的游戏严重依赖于按下按钮的时间,则使用每个mousedown运行您的游戏逻辑(不要等待rAF)。例如,在射击游戏中,如果你等到rAF测试子弹是否击中敌人,敌人可能会移动到目标之外。

如果您的游戏依赖按下按钮数量而不管时间,那么只需累积mousedown计数直到rAF。例如,在快速抽搐游戏中,您只是测试用户可以按下按钮以响应提示的次数。

无论哪种方式,将显示重绘放在rAF中,以使游戏尽可能高效地显示。