繁体   English   中英

如何在Swift中为旋转的圆做if语句?

[英]How do I make an if statement for my rotating circle in Swift?

我有一个圆圈,当用户将手指放在节点上并旋转时,它可以左右旋转360度。 我需要弄清楚如何制作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

        } 
         } 
          }

一种方法是将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 ,因此您不想执行任何操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM