Error del compilador Swift:Double no se puede convertir a CGFloat

Error del compilador Swift:Double no se puede convertir a CGFloat


Acabo de empezar a aprender Swift. Creé un proyecto de juego y apareció una plantilla. No he hecho nada con el código en absoluto. Intenté ejecutar el proyecto pero apareció un error de compilación.


Voy a salir de un tutorial, por lo que podría haber algún problema con mi entorno o el libro ya está desactualizado.


Error del compilador de Swift:'Double' no se puede convertir a CGFloat


import SpriteKit
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
/* Setup your scene here */
let myLabel = SKLabelNode(fontNamed:"Chalkduster")
myLabel.text = "Hello, World!";
myLabel.fontSize = 65;
myLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame));
self.addChild(myLabel)
}
override func mouseDown(theEvent: NSEvent) {
/* Called when a mouse click occurs */
let location = theEvent.locationInNode(self)
let sprite = SKSpriteNode(imageNamed:"Spaceship")
sprite.position = location;
sprite.setScale(0.5)
let action = SKAction.rotateByAngle(M_PI, duration:1)
sprite.runAction(SKAction.repeatActionForever(action))
self.addChild(sprite)
}
override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
}
}

El error ocurre en let action = SKAction.rotateByAngle(M_PI, duration:1)


Aquí hay una captura de pantalla de la configuración del proyecto


Respuestas:


Puedes convertirlo con CGFloat(M_PI) .


Por ejemplo, el siguiente código debería funcionar en su caso (tenga en cuenta el uso de CGFloat )


let action = SKAction.rotateByAngle(CGFloat(M_PI), duration:1)