Ios 如何在Swift中为我的旋转圆生成if语句?
我有一个圆圈,当用户的手指在节点上旋转时,它可以左右旋转360度。我需要弄清楚如何生成if语句,这样当它向左旋转时,我可以添加一个动作,当它向右旋转时,我可以添加另一个动作。以下是我的代码:Ios 如何在Swift中为我的旋转圆生成if语句?,ios,swift,touchesmoved,Ios,Swift,Touchesmoved,我有一个圆圈,当用户的手指在节点上旋转时,它可以左右旋转360度。我需要弄清楚如何生成if语句,这样当它向左旋转时,我可以添加一个动作,当它向右旋转时,我可以添加另一个动作。以下是我的代码: override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) { for touch in touches { let location = touch.locationInNo
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
}
}
}
覆盖功能触摸移动(触摸:设置,带事件:UIEvent?){
接触{
let location=touch.locationInNode(自)
设node=self.nodeAtPoint(位置)
如果node.name==“rotateCrcle”{
//当节点上有一个手指时,允许用户像旋钮一样旋转圆圈。
设dy=circle.position.y-location.y
设dx=circle.position.x-location.x
设角度2=atan2(dy,dx)
圆周旋转=角度2
}
}
}
一种方法是将角度2
值与上一次触摸的角度值进行比较。然后可以创建一个if
语句,根据旋转方向执行所需操作
一些伪代码:
在你们班:
var previousAngle:Double
在触摸移动中
let delta = (angle2 - previousAngle) mod M_PI
if delta > 0 {
// do action 1
}
else {
// do action 2
}
previousAngle = angle2
您需要一些逻辑来检查这是否是第一次触摸。在这种情况下,您还没有以前的角度,因此您不想采取行动。一种方法是将角度2值与以前触摸的角度值进行比较。然后可以创建一个
if
语句,根据旋转方向执行所需操作
一些伪代码:
在你们班:
var previousAngle:Double
在触摸移动中
let delta = (angle2 - previousAngle) mod M_PI
if delta > 0 {
// do action 1
}
else {
// do action 2
}
previousAngle = angle2
您需要一些逻辑来检查这是否是第一次触摸。在这种情况下,您还没有以前的角度,所以你不想采取行动。我需要它,这样如果用户向右旋转,我可以添加一个行动,如果用户向左旋转,我可以添加另一个行动。我需要它,这样如果用户向右旋转,我可以添加一个行动,如果用户向左旋转,我可以添加另一个行动。是的,我必须添加到改变一些事情,它最终会起作用。非常感谢。是的,我添加了一些东西来改变周围的情况,结果它起了作用。非常感谢。