Действия Cocos-2d - заставить их ждать, прежде чем перейти к следующей строке в коде? - PullRequest
1 голос
/ 12 декабря 2011

По сути, скажем, у меня есть это:

[sprite runAction:action];
[sprite2 runAction:action2];

в cocos2d, это будет выполнено одновременно.Но скажите, что я хочу, чтобы первая строка полностью завершилась, прежде чем перейти к следующей, как бы я это сделал?

Ответы [ 2 ]

2 голосов
/ 12 декабря 2011

на первом спрайте, запустите CCSequence [action, startSprite2], где startSprite2 - это другое действие (CCCallFunc). Когда действие завершается, запускается подпрограмма startSprite2. Добавьте это в свой модуль и в этой процедуре запустите действие sprite2.

1 голос
/ 13 декабря 2011

@ YvesLeborg ответ правильный.Есть много других способов сделать это.Один путь может быть таким.Создайте две функции для каждого действия спрайта, например

-(void)runSprite1Action{
[sprite1 runAction:action];
}

-(void)runSprite2Action{
[sprite2 runAction:action2];
}

. Затем на родительской сцене / слое вы можете добавить действие CCSequence, которое сначала вызовет первое действие, а затем, когда первое действие закончится, будет выполненовызвать 2-е действие.т.е.

CCSequence *sequence = [CCSequence actions:[CCCallFunc actionWithTarget:self selector:@selector(runSprite1Action)],
                            [CCCallFunc actionWithTarget:self selector:@selector(runSprite2Action)], nil];
    [self runAction:sequence];

Надеюсь, это поможет.

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