2
我正在使用SpriteKit在Swift上進行遊戲。我有一個帶有SKPhysicsBody和幾個子節點以及它們自己的物理體的父節點。所有的子節點都有一些相對於父節點的速度。給父節點一個速度時如何保持相對速度?下面是僞代碼,以顯示我想要做的事:如何在移動家長時保持兒童SKNode速度?
let parent:SKNode = SKNode()
let child:SKNode = SKNode()
parent.physicsBody = SKPhysicsBody()
child.physicsBody = SKPhysicsBody()
parent.addChild(child)
child.physicsBody!.velocity = CGVectorMake(dx: 5, dy: 5)
// child now has velocity
parent.physicsBody!.velocity = CGVectorMake(dx: 10, dy:10)
// parent has velocity, but child velocity is still (5,5)
我怎麼會得到孩子的速度進行設置,使得其保持相對於母公司的速度? (例如,一旦父母被給予(10,10)的速度以使其相對於父母保持(5,5)),則孩子的絕對速度應該變爲(15,15)。 我嘗試使用SKPhysicsJoint但似乎修復節點,不允許速度。任何解決方案(我確定我忽略了一些明顯的東西,但我是SpriteKit的新手)
謝謝!
是的,父母不是我的實際變量名稱,只是一個例子。如果有50或60個孩子,這是不是變得低效?是否沒有辦法讓SKPhysicsBody移動所有的孩子,就像孩子們被固定一樣? –
如果您不需要孩子獨立於父母移動,您可以設置每個孩子的'''physicalbody'的'pinned'屬性。 – Epsilon
是的,問題是我需要它們獨立移動,但是如果父項被移動,它們會保持與父項的相對速度。是否有可能通過某種聯合來實現?如果不是,我將使用您建議的方法,但是我必須獲得父級中每個節點的列表,並單獨執行每個節點,這可能是低效的。 –