2015-01-15 12 views
1

所以我有一個'SKSpriteNode(texture:someTexture)'對象,我運行了一個'SKAction',在其上用幾個紋理對其進行動畫處理(步行動畫)。獲取SKPhysicsBody更新爲紋理動畫(Swift)

我使用紋理參數設置它爲physicsBody,這樣physicsBody將會是我角色的完美輪廓,唯一的事情是我無法完全弄清楚如何讓紋理變化隨紋理變化而變化(由於動畫)。

我嘗試了用Object.texture(對於動畫中的當前紋理)指定對象一個新的SKPhysicsBody(在update方法中),但並不保留我最初設置的所有其他屬性。我在文檔中搜索了一些方法,可以實現這一點,但什麼都沒找到。

什麼是最好的方式去做這件事?

回答

1

通常你會設計你的遊戲,使得相同的物理形狀適用於所有的動畫幀。根本不管人形角色的四肢在形狀上是否都有適當的輪廓,通常矩形通常就足夠了。

你的方法是順便說一句,你必須每次創建一個新的物理體,並且在用新體替換之前,必須複製上一個體的屬性。然而,這不是一個好的解決方案,因爲身體的內部狀態不能被保留,並且不同的形狀將不會使現在動畫的物理形狀具有適當的物理行爲。例如,如果角色擺動蝙蝠,擊球,它基本上只是將球從蝙蝠移開,但不會施加來自擺動的任何力。

實質上,你試圖達到的目標不是(真的)可能的。取而代之的是給節點一個在所有動畫框架上妥協的形狀。通常最好使用盡可能小的形狀。或者,你可以編寫多個精靈的字符,以便能夠組成多個(連接的)機構。