2013-07-31 80 views

回答

13

首先用完整的圓形進度條創建紋理(區域)。接下來,使由一個或多個三角形組成的形狀(網格)變形,以適應應顯示的實際區域。

爲此,請考慮從圖像中心到圖像邊界的一條線。計算給定角度的直線的交點(和「牆」,即圖像的左側,右側,頂部或底部)。這會給你需要繪製的部分紋理(區域)。例如,如果靜止線(角度爲零)穿過中間圖像的底部牆,則圖像是方形的,並且您想要順時針旋轉,然後45和135度之間的所有東西都會碰到左側牆,在135到225度之間的頂部牆壁,等等。

現在你有了形狀,你需要用三角形表示它。或者保持與libgdx的spritebatch(即偶數個三角形)的兼容性。確保根據頂點的位置更新U和V值。

的簡單實現的這個可以在這裏找到了:https://github.com/xoppa/world/blob/master/src/com/xoppa/android/misc/RadialSprite.java

+0

非常感謝。我剛剛更新了你的代碼並做了一個要點。希望你不介意:https://gist.github.com/chandujr/5d79f3603efadb566d0a8f7edb5ba0ad – WeirdElfB0y