Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Swift Compiler error: 'Double' is not convertible to CGFloat

Tags:

c

xcode

ios

swift

I just began learning Swift. I created a game project and a template came up. I have not done anything to the code whatsoever. I tried to run the project but a compiler error popped up.

I'm going off a tutorial so it could be something wrong with my environment or the book is already outdated.

Swift Compiler error: 'Double' is not convertible to 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 */     } } 

The error occurs in let action = SKAction.rotateByAngle(M_PI, duration:1)

Here is a screenshot of the project settings enter image description here

like image 449
Beast_Code Avatar asked Jul 30 '14 02:07

Beast_Code


1 Answers

You can convert it with CGFloat(M_PI).

For example the following code should work in your case (note the use of CGFloat)

let action = SKAction.rotateByAngle(CGFloat(M_PI), duration:1) 
like image 129
Andrew Avatar answered Sep 23 '22 00:09

Andrew