2017-03-18 6 views
1

私はスウィフト遊び場の動きに少しでも新しかったですが、スウィフト3のスワイプジェスチャー認識機能を私のすばらしい遊び場に追加しようとしています。このhttp://www.spritekitlessons.com/gesture-recognizer-with-sprite-kit-and-swift/以下の私が今持っている: enter image description hereスワイプレコグナイザをスウィフトプレイグラウンドのSKSceneに追加できませんか?

私は機能を配置しようとしている:これはコンパイル

func swipedRight(sender:UISwipeGestureRecognizer){ 
    print("swiped right") 
} 

func swipedLeft(sender:UISwipeGestureRecognizer){ 
    print("swiped left") 
} 

func swipedUp(sender:UISwipeGestureRecognizer){ 
    print("swiped up") 
} 

func swipedDown(sender:UISwipeGestureRecognizer){ 
    print("swiped down") 
} 

let degree = CGFloat(M_PI_2)/90 


class GameScene: SKScene { 
    var selectedNode: SKNode? 
    var shakeAction: SKAction? 

    override func didMove(to view: SKView) { 

     /* Setup your scene here */ 

     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) 
    } 

let frame = CGRect(x: 0, y: 0, width: 1000, height: 600) //view size 
let view = SKView(frame: frame) 

let scene = GameScene(size: frame.size) 
view.presentScene(scene) 
PlaygroundPage.current.liveView = view 

、しかし私はセレクタを持つ関数が含まれなかったにもかかわらず、私は認識されないセレクターエラーを取得スワイプするときクラス内でも同様です。スウィフトレコグナイザをスウィフトの遊び場SKSceneに追加するにはどうすればよいですか? #selector(methodName) -

新しいセレクタ構文を使用しようとすると、エラー・ログに言ったように

答えて

1

あなたは文字列として渡されたセレクタを持って、何かが間違いなく彼らと間違っています。

例:セレクタの文字列を使用して

class ViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     /* Swift 3 */ 

     let swipe = UISwipeGestureRecognizer(target: self, action:#selector(handleSwipe)) 
     view.addGestureRecognizer(swipe) 

    } 

    func handleSwipe() { 
     print("Swiped!") 
    } 
} 

を廃止されました。 methodName()メソッドが存在しない場合、新しいセレクタ構文を使用すると、コンパイルエラーが発生します。 "認識できないセレクタ"のためにアプリケーションがクラッシュしません。

関連する問題