Renderer クラスに Animation クラスの 2 つのオブジェクトがあり、サルのアニメーションの 2 つのファイルを取得します。
今、左に行くサルを描画するアニメーションの 3 番目のオブジェクトを作成しようとしています。
私は 2 番目のアニメーション (猿が右に行く) の画像を反転し、最終的に 3 番目のオブジェクトのリソースとして使用される配列に追加しようとしています。
問題は、2 番目のアニメーションの画像を反転して追加すると、元のアニメーション オブジェクトが「破損」することです。私が損傷したと言うとき、右に行く猿の画像を含むアニメーションも突然左に「反転」し、左に行く猿を表す 2 つのアニメーション オブジェクトがあることを意味します。
これを処理するコードの一部を次に示します。
monkeyAnimStraight = new Animation(1/20.0f, AssetsManager.getAsset("animations/monkeywalkaway.txt", TextureAtlas.class).getRegions());
monkeyAnimStraight.setPlayMode(Animation.PlayMode.LOOP_REVERSED);
monkeyAnimRight = new Animation(1/10.0f, AssetsManager.getAsset("animations/monkeywalk.txt", TextureAtlas.class).getRegions());
monkeyAnimRight.setPlayMode(Animation.PlayMode.LOOP_REVERSED);
Array<AtlasRegion> temp = AssetsManager.getAsset("animations/monkeywalk.txt", TextureAtlas.class).getRegions();
Array<AtlasRegion> keyFramesTemp = new Array<TextureAtlas.AtlasRegion>();
keyFramesTemp.addAll(temp);
for(AtlasRegion keyFrame : keyFramesTemp) {
keyFrame.flip(true, false);
}
monkeyAnimLeft = new Animation(1/20.0f, keyFramesTemp);
ご覧のとおり、元の画像が反転しないようにコピーしようとしていますが、それでも機能しません。
元の AtlasRegion 配列を正常にコピーするにはどうすればよいですか?