我目前正在开发HTML Canvas游戏。没有外部依赖。它涉及HTML元素画布,几乎没有别的。游戏没有主动更改屏幕,因为它是一个商业模拟器。我不是游戏开发或编程的新手,但我是Canvas游戏编程的新手。我的问题是我想通过画布做所有事情,没有外部元素。我在画布中制作了自己的按钮,并且我试图在点击程序后检查点击注册的位置,因为我不希望游戏不断检查鼠标位置而没有发生点击。事件监听器只有在JavaScript仍在运行时才能工作吗?无论如何都要在主游戏循环中写一下,就像在psuedocode
中一样while !exit
if(input)
update();
render();
事件监听器不能像这样明确地工作,或者我必须像
那样编写它 while !exit
sleep(16.67);
在这种情况下,事件监听器只是主动检查输入,但没有显式检查,只要收到点击就会更新一个函数?
这是帆布的工作原理吗?只要程序正在运行,事件监听器是否会不断检查?
任何有关如何执行此操作的反馈将不胜感激。我愿意回答任何进一步的问题,以帮助找到答案。感谢。
答案 0 :(得分:0)
JavaScript不需要循环来监听事件。因此,对于像这样没有主动渲染的类型的游戏,游戏循环是无用的。我一直认为事件监听器不起作用,因为我使用了语法canvas.addEventListener("click", onClick());
这不起作用,因为如果你专门在函数名后写括号,它会调用函数并且没有添加事件监听器。
因此,对于这样的游戏,您可能希望将事件侦听器(没有括号)挂钩到更新函数,而不是使用循环。