2015-03-24 58 views
1

的代碼生成以下錯誤「runAction」過載:如果我們空出runBlockSpriteKit:找不到接受所提供的參數

,它編譯罰款,所以建議有什麼不對的runBlock。錯誤是如此神祕,我們無法弄清楚問題所在。

任何想法?

 func didBeginContact(contact: SKPhysicsContact!) { 
      let nodeB = contact.bodyB.node? 

      nodeB?.runAction(
        SKAction.sequence([ 
         SKAction.runBlock { 
          nodeB?.physicsBody?.applyForce(CGVectorMake(0, -2.0)) 
         }, 
         SKAction.waitForDuration(0.2) 
        ]) 
      ) 
} 

回答

0

你應該只把applyForce在它自己的功能和調用它的runBlock裏面:

func didBeginContact(contact: SKPhysicsContact!) { 
    let nodeB = contact.bodyB.node? 

    nodeB?.runAction(
     SKAction.sequence([ 
      SKAction.runBlock { 
       self.applyTheForce(nodeB!) 
      }, 
      SKAction.waitForDuration(0.2) 
      ]) 
    ) 
} 

func applyTheForce(node:SKNode){ 
    node.physicsBody?.applyForce(CGVectorMake(0, 0)) 
} 
+0

耶,我們發現這是唯一可行的辦法。你知道爲什麼嗎? – Crashalot 2015-03-24 23:42:08

+0

我認爲物理主體使用的那種方法與runBlock有些碰撞。雖然我以前沒有看到這個問題。 – Christian 2015-03-24 23:43:08

相關問題