【问题标题】:How to stop animation after some interval in cocos2d-iphone?如何在 cocos2d-iphone 中的一段时间后停止动画?
【发布时间】:2013-03-19 07:06:01
【问题描述】:

代码::

if (CGRectIntersectsRect(food.sprite.boundingBox, playerRect)) {
    [food.sprite stopAllActions]; 

    [walkAnimFrames addObject: [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:

    [NSString stringWithFormat:@"newpackman2.png", 0]]];

    [walkAnimFrames addObject: [[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:

    [NSString stringWithFormat:@"newpackman3.png", 1]]];

    walkAnim = [CCAnimation animationWithFrames:walkAnimFrames delay:0.2f];

    self.walkAction = [CCRepeatForever actionWithAction: [CCAnimate actionWithAnimation:walkAnim restoreOriginalFrame:NO]];

    self.walkAction.tag = 1;
    [chef runAction:_walkAction];
}

它工作正常,当物体与厨师碰撞时它会开始动画,但会连续运行。
我想在 3-4 秒后停止动画。
我用过 [sprite stopActionByTag:1] 但是,它对我不起作用,一旦开始它就不会暂停。

【问题讨论】:

    标签: iphone animation cocos2d-iphone


    【解决方案1】:

    例如,您可以创建停止所有动画的动作块并在那里调用stopAllActions 方法

    CCSprite *sprite = ...;
    
    CCCallBlock *block = [CCCallBlock actionWithBlock:^{
                [sprite stopAllActions];
            }];
    

    并使用 CCDelayTime 延迟

    CCDelayTime *time = [CCDelayTime actionWithDuration:4];
    
    
    [sprite runAction:[CCSequence actions:time, block, nil]];
    

    【讨论】:

    • 哇,它就像一个魅力,但它停止了我的其他动作,如 [chef runAction:[CCRepeatForever actionWithAction: [CCSequence actions: [CCMoveBy actionWithDuration:1.0 position:ccp(0,240)], [CCMoveBy actionWithDuration:1.0 位置:ccp(0,-240)], nil]]];我想在我的动画停止后继续这个动作。
    • 我记得我在停止时遇到了一些问题。比你不需要停止所有动作。尝试为所有动画设置标签 CCMoveBy 、 CCMoveBy 、 CCSequence 、 CCRepeatForever 。并在此块中使用标记阻止它们。
    • 啊,它工作正常...谢谢!我想投票但没有足够的声誉..
    【解决方案2】:

    在 Cocos2d 中,stopAllActions 停止添加到同一节点的所有动作。如果没有停止,则表示您引用了错误的节点。确保在右侧精灵上调用了 stopAllActions。

    【讨论】:

      【解决方案3】:
      CCDelayTime *time = [CCDelayTime actionWithDuration:10];// After 10 mile seconds
      
      [sprite runAction:[CCSequence actions:time, block, nil]];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-08-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-16
        • 2020-11-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多