Как отложить движение моего ИИ - PullRequest
0 голосов
/ 30 апреля 2010

Я играю в шахматы. Как только мой ход игрока завершен (если он начинает двигаться из одного места в другое), мой ход ИИ начинается (до того, как мой игрок достигнет пункта назначения). Иногда мне трудно понять, какая монета ИИ сейчас перемещена. как это отложить.

Ответы [ 2 ]

0 голосов
/ 06 мая 2010

Мне кажется, я понимаю, что вы сейчас говорите.

Вам нужно выполнить CCSequence, с вызовом функции AI в CCCallFunc в конце:

CCSequence *playerMove = [CCSequence actions: 
                          [CCMoveTo actionWithDuration: 0.4f position: CGPointMake(10,10)],
                          [CCCallFunc actionWithTarget: self selector: @selector(doAIstuff)],
                          nil];

[playerSprite runAction: playerMove];

Вам нужно, чтобы ваш AI был вызываемой функцией (т.е. doAIstuff). Это сбивает с толку то, что вы говорите, что код находится в draw ().

0 голосов
/ 30 апреля 2010

Если ваше движение игрока ограничено Core Animation , вы можете настроить setAnimationDidStopSelector на пользовательскую функцию STOP и запустить свой AI там.

Если у вас есть игровой цикл с состояниями , просто добавьте достаточно состояний (например, user_move_began, user_move_ended, ai_think_began, ai_think_ended, ai_move_began ..) для упорядочения потока .

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