2017-06-09 19 views
1

覆蓋FUNC didMove(查看:SKView){如何檢測,如果我拍了拍一個SKShapeNode

view.scene?.anchorPoint = CGPoint(x: 0,y : 0) 

    castle = SKShapeNode(circleOfRadius: ballRadius1) 
    castle.physicsBody = SKPhysicsBody(circleOfRadius:ballRadius1) 
    castle.fillColor = .white 
    castle.name = "castle" 
    castle.position = CGPoint(x: 0, y: 0) 
    castle.physicsBody?.isDynamic = false 
    castle.physicsBody?.affectedByGravity = false; 
    castle.isUserInteractionEnabled = true 
    self.addChild(castle) 

我在屏幕中間的圓圈,我想讓我輕敲時它消失。你能幫我麼?這是一個SKShapeNode並具有相同的半徑PhysicsBody

+0

如果必須使用touchesBegan。 –

回答

1

你可以使用的touchesBegan,使它看起來像這樣

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 


    for touch: AnyObject in touches{ 

     let pointOfTouch = touch.location(in: self) 
     let nodeITapped = atPoint(pointOfTouch) 
     let nameOfTappedNode = nodeITapped.name 

     if nameOfTappedNode == "castle"{ 
      //make it do whatever you want 
      castle.removeFromParent() 

     } 

    } 


} 

,你也可以實現它在touchesEnded,而是如果你希望節點立即消失隨着用戶釋放觸摸。

+0

嘿所以我讓它在'TouchesBegan'函數運行時打印出「tap」,看它是否有效。它打印出「tap」,但是隻有當我點擊節點外時,當我點擊節點時什麼也不打印出來。這很奇怪,我用你的確切代碼。非常感謝你的幫助!抱歉! @sicvayne –

+0

好的nvm,大聲笑我改變了UserInteractionEnabled = false,現在它的工作原因,謝謝你的幫助! –

+0

嘿@MatthewJacobsen我的快樂人。雖然我在那裏瘋了一下!哈哈!很高興我能幫上忙。 – sicvayne