2014-09-13 6 views
10

Ich habe einen SKLabelNode, der das Kind eines SKSpriteNode ist, weil ich versuche, eine Button-Klasse zu erstellen, um Buttons einfacher zu erstellen. Ich habe ein paar Dinge mit dem Ankerpunkt des SKSpriteNode ausprobiert, aber ich verstehe nicht genau, was genau passiert. Wie zentriere ich das Etikett auf das Sprite (seinen Elternknoten)?Zentriere einen SKLabelNode auf einem SKSpriteNode

+0

Wenn Sie zeigen, was Sie bereits versucht, wäre es uns, Ihnen helfen helfen. –

+2

Danke für die schnelle Antwort. Ich habe gerade herausgefunden, wie es geht. Ich stelle die Ausrichtungsmodi (horizontal und vertikal) des Etiketts ein und es ist jetzt perfekt zentriert, egal welche Größe der Etikettentext hat! Ich werde unten posten. – 02fentym

+0

@ 02fentym wir wünschten, Sie hätten Ihre Code-Lösung gezeigt, anstatt einfach zu erklären, dass Sie eine Frage gelöst haben, die Sie gestellt haben, ohne die Lösung zu zeigen. – nocarrier

Antwort

14

Ich erkannte, wie man das löst ... hier ist, was ich getan habe. Denken Sie daran, dass ich eine Klasse namens Button habe, die eine Unterklasse von SKSpriteNode ist.

In der Klasse Button.m habe ich eine Instanzvariable namens label, die ein SKLabelNode ist. Ich füge den Label-Knoten als Kind zu der Schaltfläche hinzu und setze dann die horizontale und vertikale Ausrichtung auf die Mitte.

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

OK, aber wie stellen Sie sicher, dass das äußere Sprite-Sprite groß genug für den Text ist? – trojanfoe

8

Dies wird Ihr Etikett in der Mitte der Szene in Sprite-Kit setzen:

yourLabel.horizontalAlignmentMode = .Center; 
yourLabel.verticalAlignmentMode = .Center 
Verwandte Themen