处理.js:p.keyRelease不是一个函数/模拟keyRelease

Processing.js: p.keyReleased is not a function / simulating keyReleased

本文关键字:keyRelease 一个 函数 模拟 js 处理      更新时间:2023-09-26

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

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

所以我的问题是,有没有办法让 keyRelease 函数在 processingjs 中工作,或者有没有一种解决方法允许我模拟 keyRelease,即使我们从按下 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 个键

处理的javascript端口中的keyRelease函数对我来说似乎工作得很好。您是否在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>