簡體   English   中英

僅在1個場景中滑動手勢,如何在其他場景中忽略

[英]Swipe gestures in just 1 scene, how to ignore on other scenes

我的視圖控制器中有以下代碼,可通過滑動手勢在GameScene中移動玩家:

override func viewDidLoad() {
    super.viewDidLoad()

  var scene:GameMenuScene!
   var scene1: GameScene!
   var scene2: LevelScene!

    let skView = view as SKView
    skView.multipleTouchEnabled = false
    scene = GameMenuScene(size: skView.bounds.size)
    skView.showsFPS = true
    skView.showsNodeCount = true
    skView.presentScene(scene)


    let swipeRight:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("swipedRight:"))
    swipeRight.direction = .Right
    view.addGestureRecognizer(swipeRight)

    let swipeLeft:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("swipedLeft:"))
    swipeLeft.direction = .Left
    view.addGestureRecognizer(swipeLeft)

    let swipeUp:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("swipedUp:"))
    swipeUp.direction = .Up
    view.addGestureRecognizer(swipeUp)

    let swipeDown:UISwipeGestureRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("swipedDown:"))
    swipeDown.direction = .Down
    view.addGestureRecognizer(swipeDown)

    }

func swipedRight(sender: UISwipeGestureRecognizer){
    let skView = view as SKView
    let gameScene = skView.scene as GameScene
    gameScene.swipedRight1(sender)
}
func swipedLeft(sender: UISwipeGestureRecognizer){
    let skView = view as SKView
    let gameScene = skView.scene as GameScene
    gameScene.swipedLeft1(sender)
}
func swipedDown(sender: UISwipeGestureRecognizer){
    let skView = view as SKView
    let gameScene = skView.scene as GameScene
    gameScene.swipedDown1(sender)
}
func swipedUp(sender: UISwipeGestureRecognizer){
    let skView = view as SKView
    let gameScene = skView.scene as GameScene
    gameScene.swipedUp1(sender)
}

問題:當我在非gameScene的另一個屏幕上滑動時,游戲崩潰是因為“無法識別的選擇器已發送”,所以我只想在GameScene中使用滑動功能,而不要在LevelScene或GameMenuScene中使用滑動功能。 對於GameMenuScene和LevelScene,我想添加其他滑動功能。

如何檢測我所在的場景,以便做出if語句?

謝謝

在您的GameScene中添加此...

override func willMoveFromView(view: SKView) {
    if view.gestureRecognizers != nil {
        for gesture in view.gestureRecognizers! {
            if let recognizer = gesture as? UISwipeGestureRecognizer {
                view.removeGestureRecognizer(recognizer)
            }
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM