c++ - 多个序列上的 runAction
问题描述
这是我的代码:
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,但我不确定代码是否良好,因为它具有相同的结果。
解决方案
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
推荐阅读
- activemq - ActiveMQ 复制的LevelDB 无法运行
- javascript - 如何使用带有内容安全策略的谷歌地图信息窗口的默认样式?
- ruby-on-rails - Rails 生成模型 --orm 选项缺失
- enums - 如何使用流类型中的枚举进行详尽的类型检查?
- python - 为什么在使用 Neurokit 时出现属性错误?
- node.js - 无法连接错误 - Linux 服务器上的 Node Express 应用程序
- mysql - 参数组更改未反映在 Aurora Serverless 数据库集群上
- reactjs - 是否可以使用服务器端渲染在 ReactJS 中读取 HTTPOnly cookie
- android - 有时在 FAB 上调用 setImageResource 时根本不显示任何图像
- sql - 如何从具有条件的表中的 XML 列中选择一个值。XML 表单包含不同的页面