2016-12-12 3 views
1

私はちょうど1つのテープジェスチャーで動き始めている動きのあるキャラクターを持っているシーンキットゲームを完成させました。再生ボタンを押したときにだけ私のキャラクターを動かす方法は? この画像のようenter image description here は、ここでは、あなたの再生ボタンを表すSKSpriteNodeでオーバーレイSKSceneを作成して追加する必要がありLevelOneViewControllerのviewDidLoad()SkSpriteNodeでシーンキットキャラクターの動きをコントロールする方法

func move(){ 
    Character.idle() 
    let startTap = UITapGestureRecognizer(target: self, action: #selector(LevelOneViewController.handleStartTap(_:))) 
    scnView.addGestureRecognizer(startTap) 

    let stopTap = UITapGestureRecognizer(target: self, action: #selector(LevelOneViewController.handleStopTap(_:))) 
    scnView.addGestureRecognizer(stopTap) 
    stopTap.numberOfTapsRequired = 2 
    } 
    move() 
} 

答えて

2

で文字を移動するための私のコード

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

    for touch in touches { 
     let location = touch.location(in: self) 
     let _node:SKNode = self.atPoint(location) 
     if(_node.name == "Play Button"){ 
         parentView?.startGame() 

     } 
      if self.pauseNode.contains(location) { 
       if !self.isPaused { 
        self.pauseNode.texture = SKTexture(imageNamed: "Pause Button") 

       } 
       else { 
        self.pauseNode.texture = SKTexture(imageNamed: "Play Button") 

       } 

       self.isPaused = !self.isPaused 



     } 
    } 

機能ですあなたのキャラクターを更新します。次に、このコントロールシーンをSCNViewのオーバーレイとして設定します。

いくつかのサンプル擬似コード、あなたは詳細に記入する必要があります:あなたが設定どこ

class GameControlsScene:SKScene { 

    var character:Character 
    var playButton:SKSpriteNode 
    var playButtonGestureRecognizer:UIGestureRecognizer 

    override init(character:Character) { 
    self.character = character 
    super.init() 
    } 

    func didMove(to:SKView) { 
    // add an SKSpriteNode for the play button 
    self.playButton = SKSpriteNode(imageNamed:"playButton") 
    self.playButton.position = CGPointMake(<<w>>, <<h>>) 
    self.playButtonGestureRecognizer = // add a UIGestureRecognizer with selector as handlePlayButtonTap 
    self.view.addGestureRecognizer(self.playButtonGestureRecognizer) 
    } 

    // gesture recognizer to handle play button tap 
    func handlePlayButtonTap() { 
    //in here move your character  
    } 
} 

は、今すぐあなたのSCNViewはオーバーレイを設定します。

var controlScene:GameControlScene(<<character>> 
scnView.overlaySKScene = controlScene 

あなたもXcodeでSKScene.sks)を行い、ファイルやプログラムで1を作る、それを代わりに読み込むことができますが、中に自分のキャラクターにそれをフックし、ジェスチャー認識を加えるの詳細の残りの部分3Dシーンとオーバーレイとして設定することは同じです。

.sksファイルの場合、this should helpです。

関連する問題