Я делаю игру BlackJack с помощью cocos2d, и есть проблема, с которой я не могу найти решение. Я пытаюсь сделать начальный экран сделки, как это:Подождите, пока не будет выполнено CCMoveTo?
- Первая карта спрайт будет перемещаться из-за экрана, чтобы руки игрока
- Второй спрайт карты будет перемещаться из-за экрана в руке дилера
- Третье -> игрок
- Четвертый -> дилер
Для этого я вызываю метод drawCard от игрока и дилера классов:
[self.player drawCard];
[self.dealer drawCard];
[self.player drawCard];
[self.dealer drawCard];
В методе drawCard:
-(void) drawCard {
.......
id move = [CCMoveTo actionWithDuration:0.4 position:ccp(x, y)];
[card.sprite runAction:move];
......
}
Я хочу, чтобы первая карта, чтобы закончить перемещение в заданном положении перед второй карты начинает двигаться, но в действительности все 4 карты начинают двигаться почти в то же время. Пожалуйста, помогите мне решить эту проблему :(
Спасибо, что это сработало! вопрос: я думал, что действие должно завершиться до того, как будет выполнена следующая строка? И есть ли более элегантный способ добиться этого же результата? (Я думаю, многопоточность/performselector: afterDelay или waitUntilDone) –
обновил мой ответ ... вместо того, чтобы выполнятьselector его лучше использовать CCCallBlock в cocos2d. – Guru