javascript - 带有 requestanimationframe 的 Canvas 鼠标事件

标签 javascript html canvas

我正在开发一款游戏,目标是使用所有 Canvas 。

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

也许与问题无关:触发事件时,事件会调用带有按钮的对象来检查鼠标位置(这是由于只有最顶层注册了鼠标事件以及预渲染的工作方式)。本质上,它不是每个 Canvas 对象/按钮上的“真实”鼠标事件。

谢谢!

最佳答案

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

如果您的游戏严重依赖于按钮按下的时机,则每次鼠标按下时都运行您的游戏逻辑(不要等待 rAF)。例如,在射击游戏中,如果等到 rAF 来测试子弹是否击中敌人,敌人可能会偏离目标。

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

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

关于javascript - 带有 requestanimationframe 的 Canvas 鼠标事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31944854/

相关文章:

javascript - 当所需值是另一种形式的 0 时,Firefox 会强制输入 0。例如 : 00. 00。有什么可以做的吗?

javascript - 在一个隐藏文本输入中收集多个输入

javascript - 如果焦点在其他元素上,则 keydown 事件不起作用

javascript - 如何找到在浏览器中禁用 JavaScript 的用户数量?

html - 使容器 div 用粘性页脚填充所有布局

javascript - 使 Canvas 填充包括形状中的描边

javascript - HTML5 动态创建 Canvas

javascript - 在 HTML 中垂直降低一组文本段落的不透明度的巧妙方法是什么

html - 我怎样才能减少我的内容和标题之间的差距?

javascript - 设置 Canvas 文本的字体粗细