我正在开发一款游戏,目标是使用所有 Canvas 。
目前我的按钮有一个鼠标事件(mousemove、mousedown、mouseup)。我应该直接从此事件更新我的 Canvas 按钮还是将其与 requestionanimationframe 集成?我读到鼠标事件每秒可以调用数百次......
也许与问题无关:触发事件时,事件会调用带有按钮的对象来检查鼠标位置(这是由于只有最顶层注册了鼠标事件以及预渲染的工作方式)。本质上,它不是每个 Canvas 对象/按钮上的“真实”鼠标事件。
谢谢!
最佳答案
如果不了解更多关于您的游戏的信息,很难回答您的问题,但总的来说:
如果您的游戏严重依赖于按钮按下的时机,则每次鼠标按下
时都运行您的游戏逻辑(不要等待 rAF)。例如,在射击游戏中,如果等到 rAF 来测试子弹是否击中敌人,敌人可能会偏离目标。
如果您的游戏依赖于无论时间如何的按钮按下次数,那么只需累积mousedown
计数直到 rAF。例如,在快速抽搐游戏中,您只是测试用户可以按按钮多少次来响应提示。
无论哪种方式,请将您的显示重绘放入 rAF 中,以使游戏显示尽可能高效。
关于javascript - 带有 requestanimationframe 的 Canvas 鼠标事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31944854/