【发布时间】:2015-12-31 10:21:09
【问题描述】:
我想要做的是检查两个节点(对象)是否指向同一个方向。但问题是 SpriteKit 以弧度旋转节点,因此它不断添加到节点的 zRotation。
我为轮换做的是:
if(touched_location.x >= self.frame.size.width/2)
{
node1.runAction(SKaction.RotateByAngle(CGFloat(-M_PI_2), 1.0)
}
else if(touched_location.x <= self.frame.size.width/2)
{
node1.runAction(SKAction.RotateByAngle(CGFloat(M_PI_2), 1.0)
}
所以这会将节点旋转 90°,但 RotateByAngle 使用弧度,这很好,它仍然可以工作。
但是弧度不断添加到 zRotation,所以我最终得到类似 12,45 弧度(不准确的数字只是为了参考),这与我比较 zRotation 的第二个节点(node2)的弧度不匹配。
用于检查旋转即时使用:
var first = CGFloat(round(100*node1.zRotation)/100)
var second = CGFloat(round(100*node2.zRoation)/100)
if(first == second)
{
do stuff....
}
但这显然不起作用,因为如果您将旋转节点保持在一个方向,弧度会很高(或者如果其他方向则很低),但在视觉上方向是相同的。
我该如何解决这个问题?
【问题讨论】:
标签: swift sprite-kit swift2