web-dev-qa-db-fra.com

Erreur du compilateur Swift: 'Double' n'est pas convertible en CGFloat

Je viens de commencer à apprendre Swift. J'ai créé un projet de jeu et un modèle est apparu. Je n'ai rien fait au code que ce soit. J'ai essayé d'exécuter le projet mais une erreur de compilation est apparue.

Je me lance dans un tutoriel afin que cela puisse être quelque chose de mal avec mon environnement ou le livre est déjà obsolète. 

Erreur du compilateur Swift: 'Double' n'est pas convertible en 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 */
    }
}

L'erreur se produit dans let action = SKAction.rotateByAngle(M_PI, duration:1)

Voici une capture d'écran des paramètres du projet enter image description here

28
Beast_Code

Vous pouvez le convertir avec CGFloat(M_PI).

Par exemple, le code suivant devrait fonctionner dans votre cas (notez l'utilisation de CGFloat)

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

Vous pouvez déclarer pi comme ceci dans votre code: let π = CGFloat(M_PI), puis utiliser let action = SKAction.rotateByAngle(π, duration:1)

Si vous utilisez beaucoup π, c'est beaucoup plus simple.

Vous pouvez taper π avec le raccourci alt + p

0
Drakalex