Swift-Compiler-Fehler:Double kann nicht in CGfloat konvertiert werden

Swift-Compiler-Fehler:Double kann nicht in CGfloat konvertiert werden


Ich habe gerade angefangen, Swift zu lernen. Ich habe ein Spielprojekt erstellt und eine Vorlage wurde erstellt. Am Code habe ich nichts gemacht. Ich habe versucht, das Projekt auszuführen, aber es ist ein Compiler-Fehler aufgetaucht.


Ich gehe von einem Tutorial aus, also könnte etwas mit meiner Umgebung nicht stimmen oder das Buch ist bereits veraltet.


Swift-Compiler-Fehler:„Double“ kann nicht in CGFloat konvertiert werden


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 */
}
}

Der Fehler tritt in let action = SKAction.rotateByAngle(M_PI, duration:1) auf


Hier ist ein Screenshot der Projekteinstellungen


Antworten:


Sie können es mit CGFloat(M_PI) umwandeln .


Zum Beispiel sollte der folgende Code in Ihrem Fall funktionieren (beachten Sie die Verwendung von CGFloat )


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