swift SKSpriteNode z旋转M_PI令人愤怒

pnwntuvh  于 2023-01-19  发布在  Swift
关注(0)|答案(4)|浏览(107)

所以我想做的就是把一个SKSPriteNode旋转90度。就这样。这应该很简单,但我的第一个方法,假设它会是度,把对象完全错误的方向。所以我前往谷歌〉stackoverflow。很多答案与此有关,好的,我会尝试使用M_PI或其他变体。不。“Double”不能转换为“CGFloat”。再次谷歌。“尝试使用skaction和等等等等”不。
旋转一个精灵能有多难?还是我疯了

t5fffqht

t5fffqht1#

这对我来说似乎很好用。理解弧度和度之间的转换很重要。http://en.wikipedia.org/wiki/Radian#Conversion_between_radians_and_degrees
子画面. z旋转= CG浮动(M_PI_2)

wvmv3b1j

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))
ix0qys7i

ix0qys7i3#

另一个选项是为Int创建一个扩展名:

extension Int
{
    var deg2Rad : CGFloat
    {
        return CGFloat(self) * CGFloat(M_PI) / 180.0
    }
}

然后像这样使用它:

sprite.runAction(SKAction.rotateByAngle(180.deg2Rad, duration: 1.0))

让它更易于阅读。

23c0lvtd

23c0lvtd4#

let threesixty:CGFloat = 360 * .pi / 180

相关问题