Swift 컴파일러 오류: 'Double'을(를) CGFloat으로 변환할 수 없습니다.
이제 막 스위프트를 배우기 시작했습니다.게임 프로젝트를 만들었는데 템플릿이 떴습니다.저는 코드에 아무런 조치도 취하지 않았습니다.프로젝트를 실행하려고 했는데 컴파일러 오류가 발생했습니다.
자습서를 작성하려고 하는데 환경에 문제가 있거나 책이 이미 구식일 수도 있습니다.
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 */
}
}
오류가 발생합니다.let action = SKAction.rotateByAngle(M_PI, duration:1)
프로젝트 설정 화면입니다.
로 변환할 수 있습니다.CGFloat(M_PI)
.
예를 들어, 다음 코드가 당신의 경우에 작동해야 합니다(사용에 유의하십시오).CGFloat
)
let action = SKAction.rotateByAngle(CGFloat(M_PI), duration:1)
pi를 코드에서 다음과 같이 선언할 수 있습니다.let π = CGFloat(M_PI)
그 다음에 사용합니다.let action = SKAction.rotateByAngle(π, duration:1)
π을 많이 쓰실 거면 훨씬 간단합니다.
바로가기 alt+p로 π를 입력할 수 있습니다.
이전 M_PI는 Double이지만 함수에 CGFloat가 필요합니다.깁스가 해결책이 될 겁니다.
let action = SKAction.rotateByAngle(CGFloat(M_PI), duration:1)
스위프트 5와 관련해서는 다음과 같습니다.
let action = SKAction.rotate(byAngle: .pi, duration:1)
더이상 캐스팅할 필요가 없습니다.
언급URL : https://stackoverflow.com/questions/25028039/swift-compiler-error-double-is-not-convertible-to-cgfloat
'programing' 카테고리의 다른 글
Android 재료 디자인 버튼 스타일 (0) | 2023.10.12 |
---|---|
SQL 파일에 둘 이상의 프로시저를 작성하시겠습니까? (0) | 2023.10.12 |
Uncatched TypeError: $.post가 함수가 아닙니다. (0) | 2023.10.12 |
MS SQL의 TRIGER_NESTLEVEL()과 동등한 MySQL? (0) | 2023.10.12 |
mysql에서 테이블 모음의 마지막 업데이트 시간을 결정하는 효율적이고 신뢰할 수 있는 방법이 있습니까? (0) | 2023.10.12 |