【问题标题】:CCAction help in Cocos2dCocos2d 中的 CCAction 帮助
【发布时间】:2011-05-04 20:22:02
【问题描述】:

我正在使用 Cocos2d 制作游戏。目前我的敌人每 3 秒以 75 像素间隔移动。我想让他们开枪。我的意思是我希望敌人移动,然后停止,然后射击,然后重复。但显然,您知道没有 CCShootAction。我在 Enemies.m 类中有 shoot 方法,但它在那里处于休眠状态。如何在不将其移至 HelloWorldLayer.m 类的情况下使用它来让敌人射击?任何帮助表示赞赏。谢谢!!

【问题讨论】:

    标签: iphone cocos2d-iphone


    【解决方案1】:

    您可以使用重复动作和 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];
            }
    

    从拍摄选择器中,您可以从该对象调用一些方法

    【讨论】:

    • 这似乎应该工作,但遗憾的是它没有。您有任何故障排除提示吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-23
    • 1970-01-01
    相关资源
    最近更新 更多