在我的项目中,我使用名为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如果您觉得问题已解决,请将我的答案标记为已接受。祝你好运。 –