HTML Canvas,如何在收到点击画布之前停止程序?

时间:2015-02-19 13:19:23

标签: javascript html canvas

我目前正在开发HTML Canvas游戏。没有外部依赖。它涉及HTML元素画布,几乎没有别的。游戏没有主动更改屏幕,因为它是一个商业模拟器。我不是游戏开发或编程的新手,但我是Canvas游戏编程的新手。我的问题是我想通过画布做所有事情,没有外部元素。我在画布中制作了自己的按钮,并且我试图在点击程序后检查点击注册的位置,因为我不希望游戏不断检查鼠标位置而没有发生点击。事件监听器只有在JavaScript仍在运行时才能工作吗?无论如何都要在主游戏循环中写一下,就像在psuedocode

中一样
while !exit
     if(input)
        update();
        render();

事件监听器不能像这样明确地工作,或者我必须像

那样编写它

while !exit sleep(16.67); 在这种情况下,事件监听器只是主动检查输入,但没有显式检查,只要收到点击就会更新一个函数?

这是帆布的工作原理吗?只要程序正在运行,事件监听器是否会不断检查?

任何有关如何执行此操作的反馈将不胜感激。我愿意回答任何进一步的问题,以帮助找到答案。感谢。

1 个答案:

答案 0 :(得分:0)

JavaScript不需要循环来监听事件。因此,对于像这样没有主动渲染的类型的游戏,游戏循环是无用的。我一直认为事件监听器不起作用,因为我使用了语法canvas.addEventListener("click", onClick());

这不起作用,因为如果你专门在函数名后写括号,它会调用函数并且没有添加事件监听器。

因此,对于这样的游戏,您可能希望将事件侦听器(没有括号)挂钩到更新函数,而不是使用循环。