<pre name="code" class="cpp">ArmatureDataManager::getInstance()->addArmatureFileInfo("AnimationTest/AnimationTest.ExportJson"); Armature* arm = Armature::create("AnimationTest"); arm->setPosition(200,200); this->addChild(arm); arm->getAnimation()->setMovementEventCallFunc([=](Armature* arm,MovementEventType type,const std::string& id){ if (type == MovementEventType::START) { if (strcmp(id.c_str(),"walk") == 0) { CCLOG("START:%s-------",id.c_str()); //可以再这里面转换其他的动作操作,如果达到一定的条件让他停止, //并设置目前的状态是停止即可,就会调用else if } else if (strcmp(id.c_str(),"stop") == 0) { } } else if (type == MovementEventType::COMPLETE) { CCLOG("COMPLETE:%s------------",id.c_str()); arm->getAnimation()->play("jump"); } }); arm->getAnimation()->play("Animation1");
动画回调函数是每帧都会调用一次。
setMovementEventCallFunc 函数的三个参数,分别是: 要执行的Armature对象,<pre name="code" class="cpp"> MovementEventType 有三种类型 START,COMPLETE,LOOP_COMPLETE, id,所代表的就是你要执行的动画名称,你就可以通过id 是否等于你的执行cocostudio中的那个名字,如果满足条件就可以操作接着操作,如上例所示。 只是简单结束一下使用,如果不对请指出。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。