Запустите CCAction для нескольких спрайтов - PullRequest
0 голосов
/ 14 августа 2011

У меня есть массив спрайтов и запускаю действие для каждого элемента. у меня проблема в том, что последний спрайт - единственный, который движется.

Если я добавлю 3 массива, переберу каждый из них и использую следующее

CCRepeatForever *repeat = [CCRepeatForever actionWithAction:moveSequence];
    [[row1 objectAtIndex:i] runAction:repeat];

перемещает только последний нарисованный спрайт.

Как запустить действие для каждого элемента в массиве?

Мне нужно, чтобы объекты двигались одновременно. Таким образом, все спрайты должны запускать действие одновременно. Это возможно с cocos2d

EDIT *****************

- (void) moveAliens
{
    id left = [CCMoveBy actionWithDuration:10 position:ccp(-35, 0)];
    id right = [CCMoveBy actionWithDuration:10 position:ccp(35, 0)];
    id moveSequence = [CCSequence actions:left, [CCDelayTime actionWithDuration:20],     right, [CCDelayTime actionWithDuration:20], nil];
    id repeatMoveSequence = [CCRepeatForever actionWithAction:moveSequence];

for (int i = 0; i < [row1 count]; i++) 
{
    NSLog(@"i is %d", i);
    //CCRepeatForever *repeat = [CCRepeatForever actionWithAction:moveSequence];
    [[row1 objectAtIndex:i] runAction:repeatMoveSequence];
}
}

Спасибо

1 Ответ

0 голосов
/ 17 августа 2011

Место:

left = [CCMoveBy actionWithDuration:10 position:ccp(-35, 0)];
right = [CCMoveBy actionWithDuration:10 position:ccp(35, 0)];
moveSequence = [CCSequence actions:left, [CCDelayTime actionWithDuration:20],     right, [CCDelayTime actionWithDuration:20], nil];
repeatMoveSequence = [CCRepeatForever actionWithAction:moveSequence];

внутри вашего цикла. И объявления переменных над ним.

Вы не можете использовать один CCAction для нескольких CCNodes одновременно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...