2015-09-04 196 views
0

我想旋转精灵,让我们说90度。我将如何编码?我想这使用Swift旋转精灵

let rotate = [SKAction .rotateByAngle(M_PI_4, duration: 0)] 

但是这给了我一个error.M

回答

0

M_PI_4被定义为Double并且SKAction.rotateByAngle: duration:取CGFloat作为角度参数。

试试这个:

import SpriteKit 


class GameScene: SKScene { 



    override func didMoveToView(view: SKView) { 


     let object = SKSpriteNode(color: SKColor.greenColor(), size: CGSize(width: 100.0, height: 100.0)) 
     object.position = CGPoint(x: CGRectGetMidX(frame), y:CGRectGetMidY(frame)) 
     addChild(object) 

     let rotate = SKAction.rotateByAngle(CGFloat(M_PI_4), duration:0) //You need explicit cast here , M_PI_4 is defined as Double 



     //First way 
     object.runAction(rotate) 

     //Second way 

     object.zRotation = CGFloat(M_PI_2) 

    } 


} 
1

M_PI_4是Double类型但功能需要一个CGFloat的,所以你需要将其强制转换。

let rotate = [SKAction.rotateByAngle(CGFloat(M_PI_4), duration: 0)] 

请注意,此时的旋转将是单个SKAction的数组。删除方括号,如果这不是你想要的,你只是想SKAction本身。

CGFloat是大多数UI库中使用的浮点类型。精度取决于平台。一般在32位设备上,它相当于Float,在64位设备上相当于Double。