2016-04-13 12 views
0

私はこのサークルを持っていて、ユーザーがノード上に指を置いて回転しているときに左右に360度回転できます。 if文を作成する方法を理解する必要があります。左に回転するとアクションを追加でき、右に回転すると別のアクションを追加できます。ここで私が持っているコードは次のとおりです。スウィフトで循環サークルのif文を作成するにはどうすればよいですか?

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

私はそれが必要なので、ユーザーが右に回すとアクションを追加でき、ユーザーが左に回っている場合は別のアクションを追加できます。 – coding22

答えて

2

一つのアプローチは、以前のタッチからの角度値にangle2値を比較することです。その後、回転の方向に基づいて必要な処理を行うifステートメントを作成することができます。

いくつかの擬似コード:あなたのクラスで

touchesMoved

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

var previousAngle:Double 

あなたは、これが最初のタッチであるかどうかを確認するためにいくつかのロジックが必要になります。その場合はまだpreviousAngleがないので、行動を取る必要はありません。

+0

いや私はいくつかのことを変更するために追加して、それは仕事を終えた。ありがとうございました! – coding22

関連する問題