今日のlibGDX(20150602):E. 開発記 4 キー入力の受取り

今日のlibGDX目次

http://snoopopo.hatenablog.com/entry/2015/04/27/220545

今日のテーマ:E. 開発記 4 キー入力の受取り

今回はプレイヤーが動かすバーを作っていきます。

キーの入力にあわせてバーを動かす

とりあえず、ボールやターゲットのようにXY座標を持ったバー用のクラスを作っておきます。

今まで、入力はクリックイベントしか知りませんでしたが、今回はキーの入力を受け取るようにします。

com.badlogic.gdx.Input クラスがgdx.jarにいます。このクラスでキー入力を受け取ることが出来るみたいです。

今回は、矢印の左右のキーの入力を受け取って、バーを動かすことにしました。

・MainLisner.java

           //プレイヤーバーの動作
            if (Gdx.input.isKeyPressed(Keys.LEFT)){
                ber.setX(ber.getX() - 2);
            } else if (Gdx.input.isKeyPressed(Keys.RIGHT)) {
                ber.setX(ber.getX() + 2);
            }
            ber.getImage().setPosition(ber.getX(), ber.getY());

前フレームで押されてなかった時だけ反応する

ひらしょー本の文言そのままかりています。

今までのシーケンス遷移は、クリックイベントを拾ってやっていたけど、 キー入力、enterが押されることでシーケンス遷移するよう変更してみます。

if (Gdx.input.isKeyPressed(Keys.ENTER)) {/*遷移するための処理*/}

ひらしょー本にもあったけど、このままだとenter押したらいっきに遷移してしまうので、

前フレームでenterが押されてない && enterが押された ときに遷移するようにします。

if (!preEnter && Gdx.input.isKeyPressed(Keys.ENTER)) {/*遷移するための処理*/]
preEnter = Gdx.input.isKeyPressed(Keys.ENTER);//前の状態とっておく

このあと

あたり判定処理を修正していきます。