Я бы рекомендовал установить свойство .name
SKLabelNode вместе со всеми другими узлами в вашей сцене и протестировать с помощью некоторых операторов журнала:
(Допустим, вы идете с: missingLabelNode.name = @"Missing";
)
// make sure the Label Node has been added to the scene
NSLog(@"%@ label", [self childNodeWithName:@"Missing"].name);
После того, как вы уверены, и журнал печатает «Отсутствует этикетка»..
// Find the coordinates of the Label Node
NSLog(@"Located at X:%f Y:%f" [self childNodeWithName:@"Missing"].position.x, [self childNodeWithName:@"Missing"].position.y);
// If you've added it to a different layer of the scene, or another node
NSLog(@"Inside Parent:%@" [[self childNodeWithName:@"Missing"] parent].name);
Теперь вы должны быть уверены в его координатах и присутствии на сцене. Вы также можете преобразовать его положение, если он является дочерним элементом узла, отличного от самой сцены, используя [self convertPoint:missingLabelNode.position toNode:self]
и регистрируя эти координаты.
Наконец, если вы уверены, что он должен находиться в визуальных границах сцены, я бы проверил его zPosition. Очень легко потерять узел за другими узлами. Увеличьте свойство zPosition до самого высокого установленного вами индекса. Если вы не установили zPosition для других узлов, используйте missingLabelNode.zPosition = 10.0f;
, чтобы вывести его на вершину иерархии узлов.
Это должно сработать.
person
ChrisHaze
schedule
26.07.2015