0

我正在制作一个多人对一个键盘游戏,这需要我同时跟踪多个键。在处理中,我通过为要跟踪的键创建布尔值来做到这一点,然后使用 keyPressed 和 keyReleased 函数来更改布尔值。

问题是,现在当我尝试将我的处理文件移植到网页(使用 processingjs)时,它只能识别 keyPressed,而即使尝试使用 keyReleased 也会在标题中给出错误。

所以我的问题是,有没有办法让 keyReleased 函数在 processingjs 中工作,或者是否有一种解决方法可以让我模拟 keyReleased,即使我们从按下 3 个键到 2 个?

这是在处理过程中为我工作的代码:

void keyPressed() {
  if (keyCode == UP) {
    up = true;
  }
if (keyCode == DOWN) {
    down = true;
  }
}

void keyReleased() {
  if (keyCode == UP) {
    up = false;
  }
if (keyCode == DOWN) {
    down = false;
  }
}

等等我正在使用的所有 7 个键

4

1 回答 1

0

Processing 的 javascript 端口中的 keyReleased 函数对我来说似乎工作得很好。您是否可能在 HTML 或 Javascript 中犯了错误?

我并不真正了解处理应该如何正常工作,但是 HTML/Javascript 中的这段代码为我检测到按下和释放 UP 和 DOWN 键并相应地更新它下面的标签(你必须先单击画布才能给它重点)。

<html>
<script src="http://cloud.github.com/downloads/processing-js/processing-js/processing-1.4.1.js"></script>
<body>
<script type="application/processing">
var labelUp = document.getElementById("up");
var labelDown = document.getElementById("down");

void setup()
{
  size(200, 200);
}

void keyPressed() 
{
    if (keyCode==UP)
        labelUp.innerHTML="UP: true";
    else if (keyCode==DOWN)
        labelDown.innerHTML="DOWN: true";
}

void keyReleased() 
{
    if (keyCode==UP)
        labelUp.innerHTML="UP: false";
    else if (keyCode==DOWN)
        labelDown.innerHTML="DOWN: false";
}
</script>

<canvas width="200" height="200"></canvas><br />

<span id="up">UP: false</span><br />
<span id="down">DOWN: false</span>

</body>
</html>
于 2013-11-02T23:02:53.627 回答