LibGDXでアニメーションを反転しようとしていますが、幅が異なるためアニメーションが変わってしまいます。ここで問題です:異なるサイズの滑らかな画像を反転する
あなたは、あなたがパンチ時にアニメーションが "左" 再生すると、見ることができるように
(赤い点は、X/Yは、{0,0}座標マーク)フィートはそれよりも後ろから始まりますが、右にパンチすると、両方のアニメーションの原点が左隅であるため、アニメーションがうまく動作するため、トランジションはスムーズです。
私が欲しいものを達成するために考えている唯一の方法は、アニメーションが再生しているものを見て、それに応じて座標を調整することです。これにアプローチする方法として
public static float draw(Batch batch, Animation animation, float animationState,
float delta,
int posX, int posY, boolean flip) {
animationState += delta;
TextureRegion r = animation.getKeyFrame(animationState, true);
float width = r.getRegionWidth() * SCALE;
float height = r.getRegionHeight() * SCALE;
if (flip) {
batch.draw(r, posX + width, posY, -width, height);
} else {
batch.draw(r, posX, posY, width, height);
}
return animationState;
}
任意の提案を歓迎です:
これは、コードがあります。
ありがとうございました。 originXを設定しようとしましたが、うまく動作しませんでした。静的な幅(文字がアイドルのときの幅)を使っていくつかの結果を得て、他のスプライトを中心に調整しようとしましたが、いくつかのアニメーションはOKと他のものを中心から外します。すべてのスプライトを同じ幅に設定しようとしますが、合計で65です。 – Jh62
originXとoriginYを設定しようとしましたか? 1つの値だけを設定しても動作するかどうかわからない... – MilanG
はい。ここで見ることができるように[リンク](http://i.imgur.com/dgowc3z.png)画像間の遷移の感触を与える足は、常にフレームごとに中央から外れています。 1つの値のみを中心にします。私はいくつかの異なる方法を試しました(すべてのフレームを同じ幅/サイズにすることさえできます)。そして、私が1つのアニメーションを修正すると、他のアニメーションが壊れてしまいます。私はもっと良い解決策は、私が何か好きではない、手ですべてのフレームのオフセットを作ることだと思う:( – Jh62