Swift编译错误:'Double'不能转换为CGFloat

Bea*_*ode 29 c xcode ios swift

我刚开始学习Swift.我创建了一个游戏项目,并出现了一个模板.我没有对代码做任何事情.我试图运行该项目但是弹出了编译器错误.

我要去一个教程,所以它可能是我的环境有问题,或者这本书已经过时了.

Swift编译错误:'Double'不能转换为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 */
    }
}
Run Code Online (Sandbox Code Playgroud)

发生错误 let action = SKAction.rotateByAngle(M_PI, duration:1)

以下是项目设置的屏幕截图 在此输入图像描述

San*_*aus 49

你可以转换它CGFloat(M_PI).

例如,以下代码应该适用于您的情况(注意使用CGFloat)

let action = SKAction.rotateByAngle(CGFloat(M_PI), duration:1)
Run Code Online (Sandbox Code Playgroud)