2016-04-06 21 views
0

TVOS biçiminde menü butonları oluşturmaya nasıl yaklaşacağınızı bilmemle ilgili bir sorunum var. UIKit düğmelerinin nasıl odaklandığının yeni yolunun farkındayım, ancak aralarındaki gezinme sahnelerin ardında gerçekleşiyor. SpriteKit'te FocusEngine desteği yok, bu yüzden benim sorum, lütfen bir SKSpriteNode düğmesinin nasıl oluşturulacağı ve nasıl uygulanacağı konusunda bir ipucu veya kod snippet'i (tercih edilir hızlı) verebilir misiniz? TVOS'taki menü düğmeleri SpriteKit uygulaması

bu Bunu yapmanın en iyi yoludur, ancak benim ve tvOS oyun için çalışır eğer

cevap

0

emin değilim ederiz. Ben jest tanıyıcı kullandım ve SKSpriteNode doku değiştirmek için sağa ve sola kaydırmak kullanın. Bu seçilmiş/seçilmemiş düğmelerin etkisini yaratır. Ben sadece tip bool olan değişken buttonSelected kullanıyorum ve düğme dokusu değiştiğinde onu güncelliyorum. Uzaktan kumandayı tıkladıktan sonra hangi işlemin yürütüleceğine karar vermek için bu değişkeni kullanıyorum. Bu buttonAction fonksiyonunda basit bir ifadeyle yapılır. Umarım bu sana yardımcı olmuştur. Hala hızlı bir şekilde yeniyim, umarım bunu açıkça tanımlamışımdır.

class GameScene: SKScene { 

var button = SKSpriteNode(imageNamed: "button.png") 
var buttonSelected = false 

var button2 = SKSpriteNode(imageNamed: "button2.png") 
var button2Selected = false 

override func didMoveToView(view: SKView) { 

    button.position = CGPoint(x: 900, y:100) 
    self.addChild(button) 

    button2.position = CGPoint(x: 1700, y:100) 
    self.addChild(button2) 

    // gesture recognizer 

    let swipeRight:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(GameOverScene.swipedRight(_:))) 
    swipeRight.direction = .Right 
    view.addGestureRecognizer(swipeRight) 

    let swipeLeft:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(GameOverScene.swipedLeft(_:))) 
    swipeLeft.direction = .Left 
    view.addGestureRecognizer(swipeLeft) 

    let tapGeneralSelection = UITapGestureRecognizer() 
    tapGeneralSelection.addTarget(self, action: #selector(GameScene.buttonAction)) 
    tapGeneralSelection.allowedPressTypes = [NSNumber (integer: UIPressType.Select.rawValue)] 
    self.view!.addGestureRecognizer(tapGeneralSelection) 
} 

func swipedRight(sender:UISwipeGestureRecognizer){ 

    let buttonTexture1 = SKTexture(imageNamed: "button2Selected.png") 
    button2.runAction(SKAction.setTexture(buttonTexture1)) 
    button2Selected = true 

    let buttonTexture2 = SKTexture(imageNamed: "button.png") 
    button.runAction(SKAction.setTexture(buttonTexture2)) 
    buttonSelected = false 
} 

func swipedLeft(sender:UISwipeGestureRecognizer){ 

    let buttonTexture1 = SKTexture(imageNamed: "buttonSelected.png") 
    button.runAction(SKAction.setTexture(buttonTexture1)) 
    buttonSelected = true 

    let buttonTexture2 = SKTexture(imageNamed: "button2.png") 
    button2.runAction(SKAction.setTexture(buttonTexture2)) 
    button2Selected = false 
} 

func buttonAction() { 

    if(buttonSelected == true) { 
     // do something after button is pressed 
    } else if (button2Selected == true) { 
     // do something after button2 is pressed 
    } 
} 

}