-1

ゲーム用のグラフィック テキスト ボックスを作成しようとしています。c が文字形式で押されたキーである addChar(char c) という関数をトリガーする必要があります。

4

1 に答える 1

0

あなたの更新メソッドでは、それを呼び出すときに滑らかに渡されるパラメーターの 1 つが GameContainer です。更新関数が次のようになっているとします。

public void update(GameContainer gc, int delta)  throws SlickException     
{
...
}

gc から入力を取得すると、特定のキーが押されたかどうかを入力に尋ねることができます。

その後、入力の getKeyName(int code) メソッドを使用して、取得した int でどのキーが押されたかの実際の表現を取得できます。最後に、取得した c を使用して必要なメソッドを呼び出します。

public void update(GameContainer gc, int delta)  throws SlickException     
{
Input input = gc.getInput();
//here you should create a collection of all the keys you're interested to check
Integer[] collection = {Input.KEY_C, Input.KEY_B, Input.KEY_A};
for (Integer key: collection)
{
  if (input.isKeyPressed(key))
  {
  char c = input.getKeyName(int code);
  addChar(char c);
  }
}

ただし、getKeyName は常に char を返すとは限らないことに注意してください。文字列の場合もあります。(たとえば、Enter は "enter" を返します。)

休憩を追加したい場合があります。ループ内で、1 つのキーのみに関心がある場合。また、すべての可能なキーといくつかの便利なメソッドの便利なリファレンスがここにあります: http://slick.ninjacave.com/javadoc/

于 2013-07-03T02:33:31.230 に答える