SpriteKit Найти последний созданный узел с именем
Мне интересно, как найти узел с именем, которое было недавно создано.
[myWorld enumerateChildNodesWithName:name usingBlock:^(SKNode *node, BOOL *stop) {
mysterious code
}];
Но эта функция проходит через все узлы с var name
Я хочу просто сделать свой код на недавно созданном узле.
Я имею в виду, у меня есть узел с именами:
nodeId1 -old
nodeId1 -old
nodeId1 -old
nodeId1 -newest already created
1 ответ
Решение
Вы можете просто назначить каждому узлу, который вы добавляете, один и тот же ивар. По определению, ивар будет ссылаться на узел, который был добавлен последним.
Объявите ивар:
@implementation YourClass
{
__weak CCNode* _lastAddedNode;
}
При добавлении узла:
[self addChild:someSprite];
_lastAddedNode = someSprite;
Если вы хотите иметь доступ к узлу по имени, вам нужно дать ему уникальное имя. Но это не обязательно с подходом ivar.