2015-07-05 15 views
5

Voglio creare un livello utilizzando le mie sottoclassi personalizzate di SKNode. Ho provato ad aggiungere un SKNode all'editor di scena e usare la scheda "Custom Class" per dare la classe che voglio, ma che non ha fatto assolutamente nulla. Il nodo sarebbe ancora vuoto e non mostrerebbe nulla quando eseguo il simulatore. Inoltre, per assicurarmi che la classe funzioni effettivamente, ho aggiunto una sua istanza alla scena in modo programmatico per vedere se mostra e fa.Utilizzo di codici SKN personalizzati nell'editor di scene spritekit

Come si aggiungono i nodi personalizzati alla scena tramite l'editor di scene?

Ecco il mio codice classe personalizzata:

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

Stai utilizzando Xcode 7 corretto? –

+0

@EpicByte sì, lo sono. –

risposta

5

Ci sono due cose che devi fare:

1) Quando si imposta la classe personalizzata è necessario anteporre al nome della classe con il nome del app; My_App_Name.MyClass ad esempio, dove _ rappresenta uno spazio.

2) La sottoclasse SKNode deve implementare required init?(coder aDecoder: NSCoder).


Per esempio, nel mio progetto chiamato 'MyGame':

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, l'ho fatto e nel mio coder init ho aggiunto un SKSpriteNode con l'immagine al nodo, ma ancora non verrà visualizzato nella mia scena senza codice. –

+0

Humm ... è strano; sta sicuramente funzionando per me. Hai provato a pulire e poi a riaccenderlo? Che tipo di nodo stai provando ad impostare la classe personalizzata? – ABakerSmith

+0

ti dispiace postare il codice dalla sottoclasse personalizzata? –

0

Ho avuto lo stesso problema in Xcode 8. Sembra stupido, ma di applicare una classe personalizzata Ho dovuto salvare il file .sks prima dell'esecuzione.

. I file .sks non vengono salvati automaticamente, a differenza dei file di testo o degli storyboard.