Mam węzeł SKLabelNode, który jest dzieckiem węzła SKSpriteNode, ponieważ próbuję utworzyć klasę Button, aby tworzyć przyciski w łatwiejszy sposób. Próbowałem kilka rzeczy za pomocą punktu zakotwiczenia SKSpriteNode, ale nie bardzo rozumiem, co się dzieje. Jak wyśrodkować etykietę na ikonce (jest to węzeł nadrzędny)?Wyśrodkuj węzeł SKLabelNode na SKSpriteNode
10
A
Odpowiedz
14
Uświadomiłem sobie, jak rozwiązać ten problem ... Oto, co zrobiłem. Należy pamiętać, że mam klasę o nazwie Button, która jest podklasą SKSpriteNode.
W klasie Button.m mam zmienną instancji o nazwie label, która jest węzłem SKLabelNode. Dodałem węzeł etykiety jako element potomny do przycisku, a następnie ustawiłem poziomy i pionowy tryb wyrównania na środek.
label = [[SKLabelNode alloc] init];
[self addChild:label];
[label setHorizontalAlignmentMode:SKLabelHorizontalAlignmentModeCenter];
[label setVerticalAlignmentMode:SKLabelVerticalAlignmentModeCenter];
+1
OK, ale w jaki sposób zadbasz, aby sprajt na zewnątrz (sprite) był wystarczająco duży dla tekstu? – trojanfoe
8
To będzie umieścić etykietę w centrum sceny w zestawie ikonki:
yourLabel.horizontalAlignmentMode = .Center;
yourLabel.verticalAlignmentMode = .Center
Jeśli pokażesz, co już próbował, to pomoże nam pomóc. –
Dzięki za szybką odpowiedź. Właśnie zorientowałem się, jak to zrobić. Ustawiam tryby wyrównania (poziome i pionowe) etykiety i są teraz idealnie wyśrodkowane bez względu na rozmiar tekstu etykiety! Opublikuję poniżej. – 02fentym
@ 02fentym chcielibyśmy, abyś pokazał swoje rozwiązanie kodu, zamiast po prostu wyjaśniać, że rozwiązałeś pytanie, które zadałeś, nie pokazując rozwiązania. – nocarrier