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
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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With