【问题标题】:runAction on multiple sequences多个序列上的 runAction
【发布时间】:2018-06-18 23:28:17
【问题描述】:

这是我的代码:

if (sprite != NULL)
{
    delay1 = CCDelayTime::create(1.5f);
    delay2 = CCDelayTime::create(3.0f);
    brickdelete = CallFunc::create([this]()
    {
        sprite->setOpacity(0);
        sprite->getPhysicsBody()->removeFromWorld();
    });
    brickcreate = CallFunc::create([this]()
    {
        sprite->setOpacity(255);
        sprite->setPhysicsBody(brickbody);
    });
    disintegratefunction = CallFunc::create([this]() {
        sprite->runAction(disintegrateAnim);
    });
    appearfunction = CallFunc::create([this]() {
        sprite->runAction(appearAnim);
    });
    runAction(Sequence::create(disintegratefunction, delay1, brickdelete, delay2, appearfunction, brickcreate, NULL));
}

我希望同时发生多个 runAction 实例。目前,如果我在另一个正在进行时启动一个 runAction,我会收到多个断言失败,并且第一个序列中的剩余操作被添加到第二个 runAction 序列中(因此第一个主体在序列的某个阶段仍然不完整)。

我希望它们彼此独立。这可能吗?我也尝试了targetedaction,但我不确定代码是否良好,因为它具有相同的结果。

【问题讨论】:

    标签: c++ cocos2d-x


    【解决方案1】:

    Sequence 会一个接一个地运行动作,要同时运行动作你需要使用Spawn

    Spawn 与 Sequence 非常相似,只是所有动作都将在 同时。您可以拥有任意数量的 Action 对象,甚至 其他 Spawn 对象!

    所以在你的例子中:

    if (sprite != NULL)
    {
        delay1 = CCDelayTime::create(1.5f);
        delay2 = CCDelayTime::create(3.0f);
        brickdelete = CallFunc::create([this]()
        {
            sprite->setOpacity(0);
            sprite->getPhysicsBody()->removeFromWorld();
        });
        brickcreate = CallFunc::create([this]()
        {
            sprite->setOpacity(255);
            sprite->setPhysicsBody(brickbody);
        });
        disintegratefunction = CallFunc::create([this]() {
            sprite->runAction(disintegrateAnim);
        });
        appearfunction = CallFunc::create([this]() {
            sprite->runAction(appearAnim);
        });
        runAction(Spawn::create(disintegratefunction, delay1, brickdelete, delay2, appearfunction, brickcreate));
    }
    

    参考:http://www.cocos2d-x.org/docs/cocos2d-x/en/actions/sequences.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多