2014-09-25 64 views
3

所以我想要做的就是将SKSPriteNode旋转90度。只是。它应该是简单的,但我的第一种方法,假设它是度,将完全错误的惩罚变成了对象。所以我前往谷歌> stackoverflow。有很多答案可以做到这一点,好生病尝试使用M_PI或一些变化。不。 'Double'不能转换为'CGFloat'。谷歌再次。 “试着用blah blah”使用skaction“nope。SKSpriteNode zrotation M_PI真气

旋转精灵有多难?或者我疯了

+3

作为一名软件开发人员,您必须具备耐心并在各种情况下保持冷静。如果你不能这样做,最好找一份不同的工作。 – gnasher729 2014-09-25 10:27:31

+3

所有你需要知道的是:弧度(它是)还是度数的zRotation?正值是逆时针旋转(它们是)还是顺时针旋转?此信息可在Sprite Kit类参考中找到。 https://developer.apple.com/library/ios/documentation/SpriteKit/Reference/SKNode_Ref/index.html#//apple_ref/occ/instp/SKNode/zRotation其余的都是单独的问题,而且你是沮丧并没有帮助把事情放在一起。作为一个侧面说明,如果你认为这种旋转令人沮丧,不要尝试Unity 2D/3D混合,随着时间的推移旋转,Quaternion和各种旋转功能。 – LearnCocos2D 2014-09-25 12:14:39

+0

这个问题似乎是无关紧要的,因为这是一个咆哮,而不是一个问题。 – Kreiri 2014-09-25 13:06:53

回答

2

我假设你使用基于你的“'双'不可转换...”的斯威夫特评论。

下逆时针旋转精灵90度:

 sprite.runAction(SKAction.rotateByAngle(CGFloat(M_PI_2), duration: 1.0)) 

下精灵顺时针90度旋转:

 sprite.runAction(SKAction.rotateByAngle(CGFloat(-M_PI_2), duration: 1.0)) 
0

另一种选择是创建用于诠释 extension Int { var deg2Rad : CGFloat { return CGFloat(self) * CGFloat(M_PI)/180.0 } } 分机

然后使用这样的:

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

使它更具人性化我认为