大家好,在这里我想分享一下CocoStudio的动画编辑器帧事件,以及在代码里面如何调用CocoStudio动编,关于基础的CocoStuio方法请查看CocoStudio的基础视频.还有我是第一次写博客如果有什么地方写错了,请多多指点.
在讲解骨骼动画的帧事件之前我想说一下基础视频里面的CocoStudio里面的动画编辑器跟现在最新版的动画编辑器之间的区别,最新版的动画编辑器有2个模式.一个是形体模式,另一个是动画模式,在最新版本中我们需要在形体模式下构建骨骼动画,然后再动画模式下编辑,而基础视频中的教程是不区分动画模式与形体模式的.
就介绍到这里我们进入正文.什么是帧事件?帧事件就是当我播放动画时当到达一定帧数以后可以触发一些额外的事情.比如说当我播放一个×××手开枪的动画我可以把当×××手把枪抬起的时候发射×××,然后把枪放回去.如果想触发帧事件需要在CocoStudio的动画模式下的指定帧上面定义一个名称,如下图
接下来导出该项目后来看看在C++代码里面是如何调用的吧,对了我在这里使用的是Cocos2dx3.0Bata2,关于Cocos2dx2.x的会在明后天制作.用Cocos2dx3.x版本时需要先导入一下Lib文件,如图
cocos\editor-support\cocosbuilder\proj.win32,与cocos\gui\proj.win32将这两个导入进来。然后再你的项目上点右键属性包含代码
就可以在代码里使用CocoStudio的项目了。
这里是我的Demo
#include "cocostudio/CocoStudio.h" using namespace cocostudio; //因为我导出CocoStudio项目时生成了2个Png跟plist文件所以加载了2次 ArmatureDataManager::getInstance()->addArmatureFileInfo("DemoPlayer0.png","DemoPlayer0.plist","DemoPlayer.ExportJson"); ArmatureDataManager::getInstance()->addArmatureFileInfo("DemoPlayer1.png","DemoPlayer1.plist","DemoPlayer.ExportJson"); //切忌这是CocoStuio的项目名称 auto pAni = Armature::create("DemoPlayer"); pAni->getAnimation()->playWithIndex(0); //这里是播放第几个动画。 pAni->setPosition(Point(visibleSize.width*0.5f,visibleSize.height*0.5f)); pAni->setScale(0.75f); this->addChild(pAni,10);
现在来设置帧回调首先声明一个回调函数
void onFrameEvent(Bone *bone, const std::string evt, int originFrameIndex, int currentFrameIndex);//在头文件中声明 //在Cpp中实现 void HelloWorld::onFrameEvent( Bone *bone, const std::string evt, int originFrameIndex, int currentFrameIndex ) { if(evt == "kaihuo"){ log("Fire"); } } //在构建骨骼动画时声明帧事件回调 pAni->getAnimation()->setFrameEventCallFunc(this,frameEvent_selector(HelloWorld::onFrameEvent));
CocoStudio的帧事件回调就这么简单大家试试把. 我是第一次写博客那里写错了请多多指点.
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。