我試圖在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,對吧?不確定它可以只設置一個值... – MilanG
是的。正如你可以在這裏看到的[英文](http://i.imgur.com/dgowc3z.png)腳,這是什麼讓你在圖像之間過渡的感覺是總是偏離每幀幀中心,沒有辦法只以一個值爲中心。我嘗試了幾種不同的方法(甚至使所有幀的寬度/大小相同),並且當我修復一個動畫時,其他的會因此而中斷。我認爲更好的解決方案是用手來補償每一幀,這並不是我喜歡做的事情:( – Jh62