2017-09-09 2 views
0

비슷한 질문을 많이 보았지만 이전 버전의 Swift 또는 매우 다른 상황 인 것으로 보입니다. 어쨌든, 어느 솔루션도 나를 위해 일하지 않았습니다.Swift 3에서 SKSpriteNode의 하위 클래스를 만드는 방법

나는 간단한 SpriteKit 게임을 만들었습니다. 기본적으로 SKSpriteNode 클래스에 속성을 추가하기 만하면됩니다.

let Ci = SKSpriteNode(imageNamed: "CBlob") 
Ci.name = "C1" 
Ci.pitch = "middle C" 

현재 SKSpriteNode에 name 속성이 있으므로 name 속성을 설정하는 것이 좋습니다. 파이썬에서는 객체를 인스턴스화 할 때 피치 속성을 선언 할 수 있습니다. 그러나 Swift에서 피치 속성을 추가하려면 SKSpriteNode 하위 클래스를 만들려고했습니다.

class Blob : SKSpriteNode { 
var pitch = "middle C" 
} 

그러나 Blob의 인스턴스를 초기화하는 방법을 알 수 없습니다. 예 :

let Ci = Blob(imageNamed: "CBlob") 

나는 수퍼바이저, 오버라이드 등의 모든 조합을 시도했지만 모두 오류가있는 것처럼 느껴집니다.

미리 감사드립니다.

+0

하자 Ci = ... 당신은 정말로 기초로 돌아갈 필요가 있습니다. –

+0

당신이 할 수 있으면, 나는 정교하게 고맙게 생각합니다 ... 나는 아주 신속합니다. let, 뭐가 잘못 됐니? let 객체가 여전히 객체의 속성을 변경할 수 있다고 생각 했나요? – modalmusic

+0

코드가 작동해야합니다. 그게 무슨 문제 야? – 0x141E

답변

0

내 코드가 좋았습니다. 다른 버그가 원인이었습니다. 사람이 본다면 -이 서브 클래스에 새 속성을 추가 지금 쉬운 - 당신은 등 inits 슈퍼 주변에 faff 필요가 없습니다

print(Ci.pitch) 

지금 "중간 C"를 제공 할 것입니다.

관련 문제