Помощь CCAction в Cocos2d - PullRequest
       4

Помощь CCAction в Cocos2d

2 голосов
/ 04 мая 2011

Я делаю игру с Cocos2d. В настоящее время у меня есть враги, которые двигаются с интервалом в 75 пикселей каждые 3 секунды. Я хотел бы, чтобы они стреляли. Под этим я подразумеваю, что я хотел бы, чтобы враги двигались, затем останавливались, затем стреляли, затем повторялись. Но очевидно, что вы знаете, что CCShootAction не существует. У меня есть метод стрелять в классе Enemies.m, но он там бездействует. Как я могу использовать его, чтобы заставить врага стрелять, не переводя его в класс HelloWorldLayer.m? Любая помощь приветствуется. Спасибо !!

1 Ответ

1 голос
/ 04 мая 2011

Вы можете использовать действие Repeat и действие CCCallFuncO для отправки объекта врага.

В некоторых функциях класса HelloWorldLayer.m:

   - (void) someFunc
    {
         // ...

            Enemy* enemy; // your enemy object
         // ...

            CCMoveBy* move = [CCMoveBy actionWithDuration:3 position:ccp(75,0)];
            CCCallFuncO* shot = [CCCallFuncO actionWithTarget:self selector:@selector(shoot:) object:enemy];
            CCSequence* sequ = [CCSequence actions:move,shot,nil];
            CCRepeatForever* repeat = [CCRepeatForever actionWithAction:sequ];
            [sprite runAction:repeat]; // your enemy sprite here
        }

        - (void) shoot: (id) obj
        {
            Enemy* enemy = (Enemy*)obj;
            [enemy shoot];
        }

Из селектора стрелкаВы можете вызвать некоторый метод из этого объекта

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