0

私は 2D ゲームに取り組んでいますが、問題があります。私はSlick 2Dで作業しています。ユーザーがどのキーを押しているかを確認できます。しかし、ユーザーが何も押していないかどうかを確認する方法がわかりません。上キーと右キーを押すと、その方向に移動することをゲームに知らせたいです。私はすでにすべての複数のキー入力をプログラムしました。

slick 2D をどのように伝えるか:ユーザーがキーを 1 つだけ押した場合、何かが起こるはずです。

入力は次のように定義されます。

Input input1 = gc.getInput();

私の更新方法で。

4

2 に答える 2

0

あなたが尋ねている質問はあまり意味がありません。

キーがヒットされたことをゲーム コンテナーが登録すると、リスナーがトリガーされ、 void keyPressed(int key, char c)どのキーがアクションを実行し、どのアクションが実行されるかを自分で記述する必要があります。

ゲームがキー入力を登録しない場合、 によって実行されるアクションはなくvoid keyPressed(int key, char c)、キーが押されていないと安全に想定できます。

私の質問は、ユーザーが何も押していないかどうかを確認する必要があるのはなぜですか? 別のキーが押されるか、ゲーム違反が発生するまで、ゲームは通常の状態を継続するか、同じ方向に移動する必要があります。

于 2013-09-02T20:46:28.300 に答える
0

簡単で汚い解決策は、知りたい特定のキーが現在押されていないことを確認するメソッドを作成することです。たとえば、矢印キーです。

private boolean areKeysPressed(Input input) {
if (input.isKeyDown(Input.KEY_LEFT) || input.isKeyDown(Input.KEY_RIGHT) || input.isKeyDown(Input.KEY_UP) || input.isKeyDown(Input.KEY_DOWN)) return true;
else return false;
}

そして、 update() メソッドで次のことができます。

if (!areKeysPressed(input1)) {
//code for what you want to happen if none of the arrow keys are pressed
}
于 2013-09-23T21:19:33.880 に答える