2015-07-05 9 views
5

Ich möchte eine Ebene mit meinen benutzerdefinierten Unterklassen von SKNode erstellen. Ich habe versucht, einen SKNode zum Szeneneditor hinzuzufügen und die Registerkarte "Benutzerdefinierte Klasse" zu verwenden, um die Klasse zu erhalten, die ich möchte, aber das hat absolut nichts getan. Der Knoten wäre immer noch leer und nichts würde sich zeigen, wenn ich den Simulator laufen lasse. Um sicherzustellen, dass die Klasse auch tatsächlich funktioniert, habe ich der Szene programmgesteuert eine Instanz hinzugefügt, um zu sehen, ob sie angezeigt wird.Verwenden von benutzerdefinierten SKNodes im Spritekit-Szeneneditor

Wie füge ich meine benutzerdefinierten Knoten über den Szeneneditor zur Szene hinzu?

Hier ist meine benutzerdefinierte Klasse Code:

class Player: SKSpriteNode { 
    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 
     print("Test") 
     self.addChild(SKSpriteNode(imageNamed: "Player.png")) 
    } 
} 
+0

Sie verwenden Xcode 7 korrekt? –

+0

@EpicByte Ja, ich bin. –

Antwort

5

Es gibt zwei Dinge, die Sie tun müssen:

1) Wenn die benutzerdefinierte Klasse Einstellung, die Sie haben den Klassennamen als Präfix mit dem Namen Ihrer App; My_App_Name.MyClass zum Beispiel, wo _ ein Leerzeichen darstellt.

2) Ihre SKNode Unterklasse muss required init?(coder aDecoder: NSCoder) implementieren.


Zum Beispiel in meinem Projekt 'MyGame' genannt:

enter image description here

class MyNode: SKSpriteNode { 
    // Set this after the node has been initaliser by init(coder:) 
    var someStat: Int = 0 

    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 
     // To check it worked: 
     print("Yup, all working") 
    } 
} 
+0

Ok, ich habe das gemacht und in meinem coder init habe ich einen SKSpriteNode mit der Grafik zum Knoten hinzugefügt, aber er wird immer noch nicht ohne Code in meiner Szene angezeigt. –

+0

Humm ... das ist seltsam; es funktioniert definitiv für mich. Hast du versucht, es zu reinigen und dann wieder zu starten? Für welche Art von Knoten möchten Sie die benutzerdefinierte Klasse festlegen? – ABakerSmith

+0

Macht es Ihnen etwas aus, den Code aus Ihrer benutzerdefinierten Unterklasse zu veröffentlichen? –

0

Ich hatte das gleiche Problem in Xcode 8. Es klingt dumm, aber eine benutzerdefinierte Klasse anwenden Ich musste speichern die .sks-Datei vor dem Ausführen.

.sks-Dateien werden nicht automatisch gespeichert, im Gegensatz zu Textdateien oder Storyboards.