0

複数のキーを同時に追跡する必要があるマルチプレイヤー オン ワン キーボード ゲームを作成しています。Processing では、追跡したいキーのブール値を作成し、次に keyPressed 関数と keyReleased 関数を使用してブール値を変更することでこれを行いました。

問題は、処理ファイルを Web ページに移植しようとすると (processingjs を使用して)、keyPressed のみを認識し、keyReleased を使用しようとしてもタイトルにエラーが表示されることです。

だから私の質問は、keyReleased 関数を processingjs で機能させる方法はありますか、または 3 つのキーが押されてから 2 つになった場合でも、keyReleased をシミュレートできる回避策はありますか?

処理中に私のために働いているコードは次のとおりです。

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 に答える