で文字を移動するための私のコード
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です。