2011-05-03 77 views
2

我正在用Cocos2d制作游戏。目前我有敌人每3秒以75个像素间隔移动。我希望他们拍摄。我的意思是我希望敌人移动,然后停下来,然后射击,然后重复。但显然,你知道没有CCShootAction。我在Enemies.m类有射击方法,但它在那里休眠。我如何使用它来让敌人射击,而不用移动到HelloWorldLayer.m类?任何帮助表示赞赏。谢谢!!Cocos2d中的CCAction帮助

回答

1

你可以使用一个重复动作和CCCallFuncO行动派敌人的对象。

在HelloWorldLayer.m类的一些FUNC:

- (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]; 
     } 

从拍摄选择器可以从该对象

+0

,似乎像它应该工作,调用一些方法,但遗憾的是它没有。你有任何疑难解答提示? – ipodfreak0313 2011-05-09 18:02:57