2016-04-13 22 views
0

Bu dairem var ve kullanıcı parmağını düğüme alıp döndürdüğünde 360 ​​derece sola ve sağa döndürülebilir. Bir if ifadesinin nasıl yapılacağını anlamaya ihtiyacım var, böylece sola döndüğünde bir eylem ekleyebilirim ve sağa döndüğünde başka bir eylem ekleyebilirim. İşte sahip kodudur:Swift'deki dönen çevrem için bir if deyimini nasıl yapabilirim?

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

İhtiyacım olan şey, eğer kullanıcı sağa dönüyorsa, bir eylem ekleyebilirim ve eğer kullanıcı sola dönüyorsa, başka bir eylem ekleyebilirim. – coding22

cevap

2

Bir yaklaşım önceki dokunuş açı değerine angle2 değerini karşılaştırmak olacaktır. Daha sonra, dönüş yönüne göre istediğinizi yapan bir if ifadesi oluşturabilirsiniz.

Bazı sözde kodu: sınıfta

:

var previousAngle:Double 

Bu ilk dokunuş olup olmadığını kontrol etmek için bazı mantık gerekecektir

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

touchesMoved yılında. Bu durumda henüz bir previousAngle'unuz yok, bu yüzden bir işlem yapmak istemiyorsunuz.

+0

Yea Çevremdeki bazı şeyleri değiştirmek için ekledim ve işe yaradı. Teşekkür ederim! – coding22