2017-09-09 2 views
0

Ich habe viele ähnliche Fragen zu meinen gesehen, aber sie schienen alle für ältere Versionen von Swift oder für sehr unterschiedliche Situationen zu sein. Auf jeden Fall hat keine der Lösungen für mich funktioniert.Wie man eine Unterklasse von SKSpriteNode in Swift 3 erstellt

Ich baue ein einfaches SpriteKit-Spiel. Grundsätzlich möchte ich nur ein Attribut zur SKSpriteNode-Klasse hinzufügen: z.

Derzeit funktioniert das Festlegen des Namensattributs gut, da SKSpriteNode über ein name-Attribut verfügt. In Python wäre ich nur in der Lage, das Tonhöhenattribut beim Instanziieren des Objekts zu deklarieren. In Swift, um das Tonhöhenattribut hinzuzufügen, habe ich versucht, eine SKSpriteNode-Unterklasse zu erstellen.

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

Ich kann jedoch nicht herausfinden, wie eine Instanz von Blob initialisiert wird. z.B.

let Ci = Blob(imageNamed: "CBlob") 

Ich fühle mich wie jede Kombination von Super versucht haben, außer Kraft setzen usw., aber alle führen zu Fehlern.

Vielen Dank im Voraus.

+0

lassen Sie Ci = ... Sie müssen wirklich zu den Grundlagen zurückkehren. –

+0

Wenn Sie könnten, würde ich eine Ausarbeitung schätzen ... Ich bin sehr neu zu schnell. Was ist los mit lassen? Ich dachte, lassen Objekt noch ermöglicht es, die Attribute des Objekts zu ändern? – modalmusic

+0

Ihr Code sollte funktionieren. Was ist das Problem? – 0x141E

Antwort

0

Es stellt sich heraus, dass mein Code in Ordnung ist, die Fehler wegen etwas anderes. Wenn jemand dies sieht - es jetzt so einfach ist, neue Attribute zu einer Unterklasse hinzufügen - Sie müssen nicht mit Super faff um inits usw.

print(Ci.pitch) 

wird nun geben „Mitte C“.

Verwandte Themen