在我的項目中,我使用名爲RocketMaker的類創建了新節點。這個類裏面,我有一個名爲applyRecurringForce()
功能...展開SKPhysicsBody不起作用
func applyRecurringForce() {
var thrust: CGVector = CGVectorMake(100, 100)
physicsBody!.applyForce(thrust)
}
我的問題是我無法從主場景中訪問該功能。
override func update(currentTime: NSTimeInterval) {
/* Called before each frame is rendered */
for rocketNode in rocketShips.children {
println("physicsBody: \(rocketNode.physicsBody.description)")
rocketNode.physicsBody.applyRecurringForce()
}
}
與上面的代碼開始,我得到兩個錯誤,一個是println
,以及一個用於調用applyRecurringForce()
。
方法1:沒有強制展開...
1)中的println錯誤是「可選類型‘SKPhysiceBody’沒有解開的價值,你的意思是使用‘!’要麼 '?'?」並提出了我力量展開
2)調用返回「無法調用‘applyRecurringForce’不帶參數的」
Approach2:「」我加遵循建議的解決方案...
1)println錯誤與先前方法「:」可選類型'SKPhysiceBody'的值未解包;你的意思是使用'!' 「?」?還是」和它再次提出我強迫展開
2)調用返回相同的錯誤前面:‘不能援引‘applyRecurringForce’不帶參數的’
Approach3:所以我跟着鏈,這兩個錯誤中的一個被刪除...
1)println錯誤消失
2)該調用返回「'SKPhysicsBody沒有名爲'applyRecurringForce'的成員「
如果我將電話註釋掉了,我會得到
physicsNodeName:類型:representedObject:[名稱: 'rocket1' 位置:{56,294} accumulatedFrame:{{16.849998474121094,280.20001220703125},{78.300003051757812,27.5999755859375}}]
沒有人有一個想法這是怎麼回事??這個雙解開看起來很奇怪。
謝謝加載!你說得對,rocketShips是一個SKNode。它的孩子建立在自定義節點類(不同顏色的火箭級別)中。我也嘗試過rocketNode.applyRecurringForce(),但被錯誤「AnyObject沒有名爲'applyRecurringForce()''的成員阻止。將RocketShip兒童投入RocketMaster解決了問題! –
@ ShaneO'Seasnain如果您覺得問題已解決,請將我的答案標記爲已接受。祝你好運。 –