2016-06-10 20 views
0

Ich habe einen Kreis auf dem Bildschirm, der nach rechts bewegt, wenn ich auf der rechten Seite des Bildschirms, und links, wenn ich auf der linken Seite des Bildschirms drücken. Jetzt muss ich es machen, wenn ich eine Berührung beginne, bewegt sich mein Kreis nach rechts, aber wenn ich meine Berührung loslasse, wird der Kreis anhalten, bis ich wieder auf den Bildschirm drücke.Eine Sprite-Bewegung nur beim Drücken machen?

Dies ist in meiner TouchesBegan-Funktion.

for touch: AnyObject in touches { 


    let location = touch.locationInNode(self) 
    if location.x < self.size.width/2 { 

     let moveLeft = SKAction.moveToX(self.frame.width/3, duration: 1.0) 
     Ball.runAction(moveLeft) 

    } 
    else { 

     let moveRight = SKAction.moveToX(self.frame.width/1.445, duration: 1.0) 
     Ball.runAction(moveRight) 


     } 





    } 

Hier ist was ich bisher habe.

Antwort

0

Im Grunde so etwas wie dieses:

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    for touch: AnyObject in touches { 
     let location = touch.locationInNode(self) 
     if location.x < self.size.width/2 { 

      let moveLeft = SKAction.moveToX(self.frame.width/3, duration: 1.0) 
      Ball.runAction(moveLeft, withKey:"moveLeft") 
     } 
     else { 
      let moveRight = SKAction.moveToX(self.frame.width/1.445, duration: 1.0) 
      Ball.runAction(moveRight withKey:"moveRight") 
     } 
    } 
} 

override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    Ball.removeActionForKey("moveLeft") 
    Ball.removeActionForKey("moveRight") 
} 

Ich schlage vor, Sie werden die Tasten ein wenig schlauer als hart codierte sie als Strings jedes Mal, wenn sie benötigen zu behandeln, aber das ist das Wesentliche.