背景をテクスチャとして作成した背景を持つゲームを開発しようとしています。そして、私はボックス内を移動している俳優を持っています。それは2048ゲームのようなものです。しかし、私はただ一つのキャラクターしか持ちません。私は簡単にアニメーションを動かすMoveToAction
を使用して実装することができるので、キャラクタを移動させるように私は俳優を使用していScene2DでMoveToActionを使用してスプライトの背景にアクタを移動させる
。 (私が知る限り)
これは最適な実装方法であるかどうかはわかりません。より良い方法があれば教えてください。
これまで私が行ったことはあります。
ApplicationAdapter
から拡張されたクラスがあります。
これは私のActorクラスです。
public class MyActor extends Actor {
Texture texture = new Texture(Gdx.files.internal("joffrey.png"));
public boolean started = false;
public MyActor() {
setBounds(imageWidth/2, imageHeight/2, texture.getWidth()/2, texture.getHeight()/2);
}
@Override
public void draw(Batch batch, float alpha) {
batch.draw(texture, this.getX(), getY());
}
}
は、だから私は、ユーザーが右にスワイプしたときにダウン、アップ、左、MoveToActionを使用して別のボックスから、この(ジョフリー)を移動します。
ここで説明したようにSimpleDirectionGestureDetectorクラスを作成しました。 LibGDX - Get Swipe Up or swipe right etc.?
ここで私はどのようにクラスを使用したのですか。
Gdx.input.setInputProcessor(new SimpleDirectionGestureDetector(new SimpleDirectionGestureDetector.DirectionListener() {
@Override
public void onUp() {
moveAction = new MoveToAction();
moveAction.setPosition(myActor.getX(), myActor.getY() + imageHeight);
moveAction.setDuration(0.1f);
myActor.addAction(moveAction);
}
@Override
public void onRight() {
moveAction = new MoveToAction();
moveAction.setPosition(myActor.getX() + imageWidth, myActor.getY());
moveAction.setDuration(0.1f);
myActor.addAction(moveAction);
}
@Override
public void onLeft() {
moveAction = new MoveToAction();
moveAction.setPosition(myActor.getX() - imageWidth, myActor.getY());
moveAction.setDuration(0.1f);
myActor.addAction(moveAction);
}
@Override
public void onDown() {
moveAction = new MoveToAction();
moveAction.setPosition(myActor.getX(), myActor.getY() - imageHeight);
moveAction.setDuration(0.1f);
myActor.addAction(moveAction);
}
}));
すべてここまでうまく見えます。私がアプリを起動すると、最初は正常に動作していますが、動いているアクションが遅すぎるように見えると、突然アプリケーションがエラーメッセージやログカットに何もないまま閉じられます!
私はここで何が起こっているのか考えていますか?
さらに、これは移動するアクションを実装する正しい方法ですか?動きのあるアニメーションをテクスチャに適用するにはアクタを使用する必要がありますか?
ありがとうございました。
SimpleDirectionGestureDetectorのコードを共有できますか?スワイプ中に何回も 'onUp'、' onRight'などを何度も発しているような音がします。それとも別のものかもしれない。新しいアクションをメンバ変数( 'moveAction')に割り当てるのはなぜですか?別の場所で使っていますか?そして、いいえ、あなたは俳優を使う必要はありません。必要に応じて独自のソリューションを展開できます。 – Tenfour04