2016-04-13 15 views
0

Ich habe diesen Kreis und es kann um 360 Grad nach links und rechts drehen, wenn der Benutzer den Finger auf den Knoten hat und rotiert. Ich muss herausfinden, wie man eine if-Anweisung macht, also wenn es nach links rotiert, kann ich eine Aktion hinzufügen, und wenn es sich nach rechts dreht, kann ich eine weitere Aktion hinzufügen. Hier ist der Code, den ich habe:Wie mache ich eine if-Anweisung für meinen rotierenden Kreis in Swift?

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

    for touch in touches { 
     let location = touch.locationInNode(self) 
     let node = self.nodeAtPoint(location) 


     if node.name == "rotatecircle" { 


      //lets user rotate circle like a knob when there is one finger on node. 
      let dy = circle.position.y - location.y 
      let dx = circle.position.x - location.x 
      let angle2 = atan2(dy, dx) 
      circle.zRotation = angle2 

     } 
     } 
      } 
+0

Ich brauche es so, dass, wenn der Benutzer seine nach rechts drehen würde ich eine Aktion hinzufügen könnte und wenn der Benutzer nach links dreht, könnte ich eine weitere Aktion hinzufügen. – coding22

Antwort

2

Ein Ansatz, den angle2 Wert auf den Winkelwert aus dem vorherigen Kontakt zu vergleichen wäre. Sie können dann eine if-Anweisung erstellen, die basierend auf der Rotationsrichtung die gewünschten Ergebnisse liefert.

Einige Pseudo-Code:

In Ihrer Klasse:

var previousAngle:Double 

In touchesMoved

let delta = (angle2 - previousAngle) mod M_PI 
if delta > 0 { 
    // do action 1 
} 
else { 
    // do action 2 
} 
previousAngle = angle2 

Sie eine gewisse Logik müssen prüfen, ob dies der erste Berührung ist. In diesem Fall haben Sie noch keine previousAngle, also wollen Sie nichts unternehmen.

+0

Ja, ich hatte noch etwas zu ändern und es funktionierte. Vielen Dank! – coding22