2016-04-29 8 views
-1

https://github.com/bmh3110/JackTheGiantGamekann nicht Sprite nach links oder rechts in SpriteKit

Ich bin nicht in der Lage mein Sprite nach links oder rechts zu bewegen, sich zu bewegen, wenn der Bildschirm berührt wird. Ich beginne gerade dieses Spiel und ich kann es nicht einmal zur Arbeit bringen. Ich habe dieses Problem seit ein paar Tagen und es wird wirklich frustrierend.

GameplayScene.swift

import SpriteKit 

class GameplayScene: SKScene { 
    var player : Player? 
    var canMove = false 
    var moveLeft = false 
    var center : CGFloat? 

    override func didMoveToView(view: SKView) { 
     center = (self.scene?.size.width)!/(self.scene?.size.height)! 
     player = self.childNodeWithName("Player") as? Player! 
    } 

    override func update(currentTime: NSTimeInterval) { 
     managePlayer() 
    } 

    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
     for touch in touches { 
      let location = touch.locationInNode(self) 

      if location.x > center { 
       moveLeft = false 
      } else { 
       moveLeft = true 
      } 
     } 

     canMove = true 
    } 

    override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    } 

    func managePlayer() { 
     if canMove { 
      player?.movePlayer(moveLeft) 
     } 
    } 
} 

Player.swift

import SpriteKit 

class Player: SKSpriteNode { 
    func movePlayer(moveLeft: Bool) { 
     if moveLeft { 
      self.position.x = self.position.x - 7 
     } else { 
      self.position.x = self.position.x + 7 
     } 
    } 
} 
+0

Sie müssen hier den relativen Code schreiben. – Abdou023

+1

Stellen Sie sicher, dass die benutzerdefinierte Klasse "player" im Inspektor die Player-Klasse ist. – Abdou023

+0

@ Abdou023 Ja, der Klassenname für den Player Sprite hat den Spielernamen. Es ist JackTheGiantGame.Player – Doba

Antwort

0

In der touchesEnded Funktion gesetzt canMove = false

Verwandte Themen