2017-12-21 8 views
1

Ich habe einen Ball mit einem flachen Gelände, aber ich versuche den Ball entsprechend der Position des Benutzers touch zu bewegen, wenn der Benutzer irgendwo auf dem Bildschirm tippt, bewege ich mich mein Ball an die X Position BerührungSprite-Kit: Knoten bewegt sich nicht nach links

Mein Code:

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

    for touch in touches { 

      if (ball?.hasActions())! { 
       ball?.removeAllActions() 
      } 
      let moveBY = SKAction.moveBy(x: touch.location(in: view).x, y: 70, duration: 1) 
      self.ball?.run(moveBY) 
    } 
} 

jedoch, wenn der Benutzer auf dem Bildschirm tippt, bewegt sich der Ball entsprechend, aber wenn es zu einem zweiten Wasserhahn kommt, wird der Ball nicht bewegen sich entsprechend der Berührung X

Antwort

1

Sie verwenden moveBy, wenn Sie moveTo verwenden sollten.

+0

danke, es –

0

Sie sollten dies versuchen:

func touchDown(atPoint pos : CGPoint) { 

    if ball.hasActions() { 
     ball.removeAllActions() 
    } 

    let moveBY = SKAction.moveBy(x: pos.x, y: 70, duration: 1) 
    self.ball.run(moveBY) 
} 

Ich habe die Funktion

+0

arbeitete Bitte fügen Sie eine Erklärung auf Ihre Antwort. –

+1

Nun, die TouchDown-Funktion wird aufgerufen, wenn der Bildschirm angetippt wird. Der Code testet also, ob bereits eine Aktion vorliegt und stoppt diese laufende Aktion. Dann füge ich einfach eine weitere Aktion hinzu, die so lange läuft, bis sie beendet ist oder beendet wird. – Somebuddy

+0

danke Kumpel –

Verwandte Themen