SKSpriteNode zrotation M_PI 真气
Posted
技术标签:
【中文标题】SKSpriteNode zrotation M_PI 真气【英文标题】:SKSpriteNode zrotation M_PI is infuriating 【发布时间】:2014-09-25 10:20:12 【问题描述】:所以我要做的就是将SKSPriteNode
旋转 90 度。只是。它应该很简单,但我的第一种方法,假设它是度数,将对象完全转向错误的方向。所以我前往谷歌> ***。有很多与此有关的答案,好吧,所以我尝试使用M_PI
或一些变体。不。 'Double' 不能转换为 'CGFloat'。再次谷歌。 “尝试使用 skaction 和 blah blah”不。
旋转精灵有多难?还是我疯了
【问题讨论】:
作为一名软件开发人员,您必须有耐心,在任何情况下都保持冷静的头脑。如果你做不到,最好找一份不同的工作。 所有你需要知道的:zRotation 是弧度(它是)还是度数?正值是逆时针旋转(确实如此)还是顺时针旋转?此信息可在 Sprite Kit 类参考中找到。 developer.apple.com/library/ios/documentation/SpriteKit/… 其余的都是单独的问题,你感到沮丧的事实无助于把事情放在一起。附带说明一下,如果您认为这种旋转令人沮丧,请不要尝试使用 Unity 混合 2D/3D、随时间旋转、四元数和各种旋转功能。 这个问题似乎是题外话,因为它是一个咆哮,而不是一个问题。 高中已经有一段时间了,但我很确定90度是M_PI_2 尽管您在咆哮,但还是有人好心地提供了一个答案(看起来)帮助了您。如果您希望这个问题保持开放并帮助其他有类似问题的人,我建议重新命名它(例如“如何使用 Swift 将 SKSpriteNode 旋转 90 度”)并显示您最初尝试的代码给您错误。 【参考方案1】:这对我来说似乎很好用。了解弧度和度数之间的转换很重要。 http://en.wikipedia.org/wiki/Radian#Conversion_between_radians_and_degrees
sprite.zRotation = CGFloat(M_PI_2)
【讨论】:
【参考方案2】:我假设您使用 Swift 是基于您的“'Double' is not convertible...”评论。
以下将精灵逆时针旋转 90 度:
sprite.runAction(SKAction.rotateByAngle(CGFloat(M_PI_2), duration: 1.0))
以下内容将精灵顺时针旋转 90 度:
sprite.runAction(SKAction.rotateByAngle(CGFloat(-M_PI_2), duration: 1.0))
【讨论】:
【参考方案3】:另一种选择是为 Int 创建一个扩展
extension Int
var deg2Rad : CGFloat
return CGFloat(self) * CGFloat(M_PI) / 180.0
然后像这样使用它:
sprite.runAction(SKAction.rotateByAngle(180.deg2Rad, 持续时间: 1.0))
我认为它更易于阅读
【讨论】:
以上是关于SKSpriteNode zrotation M_PI 真气的主要内容,如果未能解决你的问题,请参考以下文章
iOS SKSpriteNode 错误:从不兼容类型“CGRect”(又名“struct CGRect”)分配给“skspritenode *const __strong”
(SWIFT) Sprite 在添加后没有给我正确的 zRotation 值