2016-04-04 28 views
0

Oyunum için bir duraklatma düğmesi ve bir oynatma düğmesi yapmaya çalışıyorum, ancak duraklat düğmesine dokunduğumda ekranın donması ne olur bilmiyorum (oynat düğmesi görünür ve duraklatılır düğmesine) ve ardından oynat düğmesine dokunun (dondur).Pause/Play donma oyunu

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

    //Pause 
    pauseButton = SKSpriteNode (imageNamed: "pause") 
    pauseButton.position = CGPoint(x: self.frame.width/2, y: self.frame.height/2) 

    self.addChild(pauseButton) 

    //Play 
    playButton = SKSpriteNode (imageNamed: "play") 
    playButton.position = CGPoint(x: self.frame.width/2, y: self.frame.height/2) 


    //when touch buttons 
    let touch = touches.first! 
    if pauseButton.containsPoint(touch.locationInNode(self)) { 
     addChild(playButton) 
     pauseButton.removeFromParent() 
    } 
    if playButton.containsPoint(touch.locationInNode(self)) { 
     addChild(pauseButton) 
     playButton.removeFromParent() 
    } 
} 

cevap

2

Ekrana dokunduğunuzda düğmeyi oluşturmanın bir anlamı yoktur. Bu, ekrana her dokunduğunuzda yeni bir düğme oluşturduğunuz anlamına gelir. dokunuşları yöntemin dışında yukarıda tüm kodu "// dokunmatik renkli" Taşı ve didMoveToView

koymak

Kodunuz yapısı Alternatif olarak, tüm düğmeleri eklemek olabilir bu

class GameScene: SKScene { 

     var pauseButton: SKSpriteNode! // to make your code even safer you could use optionals here 
     var playButton: SKSpriteNode! // to make your code even safer you could use optionals here 

     override func didMoveToView(view: SKView) { 
     //Pause 
     pauseButton = SKSpriteNode (imageNamed: "pause") 
     pauseButton.position = CGPoint(x: self.frame.width/2, y: self.frame.height/2) 

     self.addChild(pauseButton) 

     //Play 
     playButton = SKSpriteNode (imageNamed: "play") 
     playButton.position = CGPoint(x: self.frame.width/2, y: self.frame.height/2) 
    } 

    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
      for touch in touches { 

       let location = touch.locationInNode(self) 
       let node = nodeAtPoint(location) 

       //when touch buttons 
       if node == pauseButton { 
        addChild(playButton) 
        pauseButton.removeFromParent() 
       } 

       if node == playButton { 
        addChild(pauseButton) 
        playButton.removeFromParent() 
       } 
      } 
     } 
} 

gibi bir şey olabilir sahneye ve örneğin pauseButton'u gizlemek yerine. yerine çıkarmadan ve sadece gizlemek ve hedef ios 9 veya gizli düğümler artık dokunmatik olayları almak nerede üzerindeyse bunları

pauseButton.hidden = true 

Bu yalnızca düzgün çalışır göstermek düğmeleri ekleme daha.

Bu yardımcı olur umarım

+0

Üzgünüm! "Touch butonu" ndan sonra "touch touch = touches.first!" Ifadesini kullanmayı unuttum. DidMoveToView'a taşımaya çalıştım, ancak bana şu hatayı veriyor: "Çözümlenmemiş tanımlayıcının kullanımı" ". Kodlamayı yeni yapıyorum, bu yüzden fazla bir şey bilmiyorum. = ( – Luiz

+0

Cevabımı güncelledim – crashoverride777

+0

Teşekkür ederim! Çalıştı !! =) – Luiz