大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
大家好,在这里我想分享一下CocoStudio的动画编辑器帧事件,以及在代码里面如何调用CocoStudio动编,关于基础的CocoStuio方法请查看CocoStudio的基础视频.还有我是第一次写博客如果有什么地方写错了,请多多指点.
成都创新互联公司专注于企业营销型网站、网站重做改版、西山网站定制设计、自适应品牌网站建设、H5高端网站建设、商城网站建设、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为西山等各大城市提供网站开发制作服务。在讲解骨骼动画的帧事件之前我想说一下基础视频里面的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的帧事件回调就这么简单大家试试把. 我是第一次写博客那里写错了请多多指点.
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。