2016-04-13 63 views
0

我有這個圓,當用戶將手指放在節點上並旋轉時,它可以左右旋轉360度。我需要弄清楚如何製作一條if語句,以便它向左旋轉時我可以添加一個動作,當它向右旋轉時,我可以添加另一個動作。這裏是我的代碼:如何在Swift中爲我的旋轉圈創建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語句,根據旋轉的方向進行所需的操作。

一些僞代碼:

在你的類:

var previousAngle:Double 

touchesMoved

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

你需要一些邏輯來檢查,如果這是第一次觸摸。在這種情況下,你還沒有previousAngle,所以你不想採取行動。

+0

是的,我有添加改變一些東西,它結束了工作。謝謝! – coding22