2014-09-13 7 views
10

Ho un oggetto SKLabelNode figlio di un SKSpriteNode perché sto cercando di creare una classe Button per creare pulsanti in un modo più semplice. Ho provato un paio di cose usando il punto di ancoraggio di SKSpriteNode, ma non capisco esattamente cosa stia succedendo. Come faccio a centrare l'etichetta sullo sprite (è il nodo genitore)?Center a SKLabelNode su un SKSpriteNode

+0

Se si mostra ciò che hai già provato, sarebbe agevolare l'assistenza. –

+2

Grazie per la rapida risposta. In realtà ho appena capito come farlo. Ho impostato i modi di allineamento (orizzontale e verticale) dell'etichetta e ora è perfettamente centrato, indipendentemente dalle dimensioni del testo dell'etichetta! Inserirò qui sotto. – 02fentym

+0

@ 02fentym vorremmo che aveste mostrato la vostra soluzione di codice invece di esporre semplicemente il fatto che avete risolto una domanda che avete chiesto senza mostrare la soluzione. – nocarrier

risposta

14

Mi sono reso conto di come risolvere questo ... ecco cosa ho fatto. Tieni presente che ho una classe chiamata Button che è una sottoclasse di SKSpriteNode.

Nella classe Button.m ho una variabile di istanza chiamata label che è un oggetto SKLabelNode. Aggiungo il nodo etichetta come un bambino al pulsante, quindi imposto le modalità di allineamento orizzontale e verticale al centro.

label = [[SKLabelNode alloc] init]; 
[self addChild:label]; 
[label setHorizontalAlignmentMode:SKLabelHorizontalAlignmentModeCenter]; 
[label setVerticalAlignmentMode:SKLabelVerticalAlignmentModeCenter]; 
+1

OK, ma come si fa a garantire che lo sprite del pulsante esterno (sprite) sia sufficientemente grande per il testo? – trojanfoe

8

Questo metterà l'etichetta nel centro della scena nel kit di sprite:

yourLabel.horizontalAlignmentMode = .Center; 
yourLabel.verticalAlignmentMode = .Center