今日のlibGDX(20150513):アクション 1

今日のlibGDX(20150513):

今日のlibGDX目次

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

今日のテーマ:アクション 1

qiita.com

おおー!ようやく動かします!!

今回は長いので、明日も継続する。

アクション

○○の動きをするアクションを生成。

       Action action = Actions.moveBy(100, 0, 1);   //x座標100pxを1秒間に移動

Actorにアクションを登録。

       image1.addAction(action);

以下から紹介されていたものを一通り試していく。

順次処理

       //アクションつくる
        Action action = Actions.moveBy(100, 0, 1);
        Action action2 = Actions.moveBy(-100, 0, 1);
        //順次処理
        SequenceAction seq = Actions.sequence();
        seq.addAction(action);
        seq.addAction(action2);
        image1.addAction(seq);

ループ

       RepeatAction rep = Actions.repeat(3, seq); //3回ループ
        RepeatAction rep2 = Actions.forever(seq);   //無限
        group.addAction(rep2);

もちろんグループにも適応されます。グループ単位で動いてくれました。

並列

       //並列処理
        Action right = Actions.parallel(
                Actions.moveBy(100, 0, 1)
                ,Actions.scaleTo(2, 2, 1)
                );

        Action left = Actions.parallel(
                Actions.moveBy(-100, 0, 1)
                ,Actions.scaleTo(1, 1, 1)
                );
        SequenceAction seq3 = Actions.sequence();
        seq3.addAction(right);
        seq3.addAction(left);
        group.addAction(seq3);

Actionsのparallelメソッドは、

public static ParallelAction parallel(Action... actions)

引数が可変長引数だ。可変長引数については以下でやった。

http://snoopopo.hatenablog.com/entry/2015/04/15/164811

http://snoopopo.hatenablog.com/entry/2015/04/16/134334

ここまでの疑問(次回消化のためのめも)

同じ動きをさせたい別のアクターに対して、同じactionをaddActionできるのでは? と思ってやってみたけど,

       Action action = Actions.moveBy(100, 0, 1);   //x座標100pxを1秒間に移動
        image1.addAction(action);
        image2.addAction(action);

ここ↓でNUllPointerException吐かれた。

ここは前の記事*1でもわかってなかったので、次回やはり調べるか。

     stage.act(Gdx.graphics.getDeltaTime());

→ 20150522 add. というわけで少し調べてみた.

snoopopo.hatenablog.com

とりあえずこの結果からわかるのは、 動きの種類単位ではなく、Actor+動きの種類単位にActionは作るもの?、ってことかな。というのを明確にする。

ここまでの例では、1つのActorに対してしか処理を行っていないので、複数のActorを動かすことがわかりたい。

ゲームで同時にひとつの絵だけしか動かせないなんてことはないはずだし。

→ 20150522 add. というわけでやってみた.

snoopopo.hatenablog.com