1

私はこの問題を約2週間抱えています。入力が必要なテキストベースのゲームを作成しています。ただし、LIBGDXのテキストフィールドではなく、独自の入力システムを使用しています。長い話です。基本的に私が必要とするのは

if(Gdx.input.isKeyPressed(Keys.a)){
      //do some stuff
   }

それ。ただし、これはAndroidでは機能しませんが、デスクトップでは問題なく機能します。これがなぜなのかわかりませんが、私を悩ませ始めています。私が発見したことの1つは、Androidでキーを押し続けると、最終的にはキーが入力されるということですが、これによりゲームプレイが非常に退屈になります。InputProcessor も使用してみましたが、これも機能しません。私は今、解決策なしで考えることができる事実上すべてを試しました。どんな助けでも大歓迎です

編集1:

私もInputProcessorを試しました。これの問題は、キーを押しても何もしませんが、Androidのハードウェアを押し戻すと、キーが最初に押されたときに行うべきことを行います。また、両方の方法で、一部のキーボードでは機能しないことがわかりました。EG: HTCセンスキーボードで動作

EDIT 2:もう少しいじって、InputProcessorのkeyIsTypedメソッドの下でアプリに何かをさせると、キーボードが閉じられた後にのみそれが行われることがわかりました。これが何かを意味するかどうかわからない

4

1 に答える 1

1

ポーリング ベースの入力を行っていますが、イベント ベースの構造の方が適していると思います。ポーリングを使用すると、キーが押されている間にたまたまチェックした場合にのみ、キーが押されたかどうかがわかります (これはリフレッシュ レートに基づいています)。そしてどんなに速くても。

https://github.com/libgdx/libgdx/wiki/Event-handlingを参照してください

その方法でキーボード イベントを取得する際に問題がある場合は、別の質問を投稿してください。

于 2013-11-10T23:07:06.787 に答える