gpt4 book ai didi

ios - 如何在 Swift 中为我的旋转圆做一个 if 语句?

转载 作者:行者123 更新时间:2023-11-28 12:50:50 26 4
gpt4 key购买 nike

我有这个圆圈,当用户将手指放在节点上并旋转时,它可以左右旋转 360 度。我需要弄清楚如何制作 if 语句,以便当它向左旋转时我可以添加一个 Action ,当它向右旋转时我可以添加另一个 Action 。这是我的代码:

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,因此您不想采取任何行动。

关于ios - 如何在 Swift 中为我的旋转圆做一个 if 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36586314/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com