所以我想做的就是把一个SKSPriteNode旋转90度。就这样。这应该很简单,但我的第一个方法,假设它会是度,把对象完全错误的方向。所以我前往谷歌〉stackoverflow。很多答案与此有关,好的,我会尝试使用M_PI或其他变体。不。“Double”不能转换为“CGFloat”。再次谷歌。“尝试使用skaction和等等等等”不。旋转一个精灵能有多难?还是我疯了
SKSPriteNode
M_PI
t5fffqht1#
这对我来说似乎很好用。理解弧度和度之间的转换很重要。http://en.wikipedia.org/wiki/Radian#Conversion_between_radians_and_degrees子画面. z旋转= CG浮动(M_PI_2)
wvmv3b1j2#
我假设你使用斯威夫特的基础上,你的“'双'是不可兑换的...”评论。下面的代码将子画面逆时针旋转90度:
sprite.runAction(SKAction.rotateByAngle(CGFloat(M_PI_2), duration: 1.0))
下面的代码将sprite顺时针旋转90度:
sprite.runAction(SKAction.rotateByAngle(CGFloat(-M_PI_2), duration: 1.0))
ix0qys7i3#
另一个选项是为Int创建一个扩展名:
extension Int { var deg2Rad : CGFloat { return CGFloat(self) * CGFloat(M_PI) / 180.0 } }
然后像这样使用它:
sprite.runAction(SKAction.rotateByAngle(180.deg2Rad, duration: 1.0))
让它更易于阅读。
23c0lvtd4#
let threesixty:CGFloat = 360 * .pi / 180
4条答案
按热度按时间t5fffqht1#
这对我来说似乎很好用。理解弧度和度之间的转换很重要。http://en.wikipedia.org/wiki/Radian#Conversion_between_radians_and_degrees
子画面. z旋转= CG浮动(M_PI_2)
wvmv3b1j2#
我假设你使用斯威夫特的基础上,你的“'双'是不可兑换的...”评论。
下面的代码将子画面逆时针旋转90度:
下面的代码将sprite顺时针旋转90度:
ix0qys7i3#
另一个选项是为Int创建一个扩展名:
然后像这样使用它:
让它更易于阅读。
23c0lvtd4#
let threesixty:CGFloat = 360 * .pi / 180