У меня возникают проблемы с вставкой нескольких дочерних элементов одного и того же спрайта и доступом к нему (или установкой для них позиций во время выполнения). Пожалуйста, посоветуйте любой подходящий метод, желательно указать на мою ошибку. Вот мой подход.
//In the Init Method...
//int i is defined in the start.
for (i = 1; i < 4; i++)
{
hurdle = [CCSprite spriteWithFile:@"hurdle1.png"];
[self addChild:hurdle z:i tag:i];
hurdle.position = CGPointMake(150 * i, 0);
}
Он распространяет все спрайты на холсте. затем в какой-то «Функции ОБНОВЛЕНИЯ» я вызываю это.
hurdle.position = CGPointMake(hurdle.position.x - 5, 10);
if (hurdle.position.x <= -5) {
hurdle.position = ccp(480, 10);
}
Это работает, но, как и ожидалось, только один экземпляр перемещается по горизонтали. Я хочу, чтобы все экземпляры были перемещены, поэтому я пытаюсь использовать это....
for (i = 1; i < 4; i++){
[hurdle getChildByTag:i].position = CGPointMake(hurdle.position.x - 5, 10);
//OR
[hurdle getChildByTag:i].position = CGPointMake([hurdle getChildByTag:i].position.x - 5, 10);
}
Я пробовал получать журналы в разных местах и понял, что getChildByTag не работает так, как я пытаюсь его использовать.