cocos2dx 2.2.1 骨骼动画使用

使用骨骼动画:

// 加载资源文件 png 图片,plist 文件和 ExportJson 动画文件,一般而言可以在场景运行之初加载此资源

CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo("resTest/Hero/Hero.ExportJson");

CCArmature* _pArrmature = CCArmature::create("Hero");

_pArrmature->getAnimation()->play("walk");//设置当前运行动画的索引,一个“工程”可以建立多个动画

_pArrmature->getAnimation()->setSpeedScale(0.1f);//修改骨骼动画播放速度

_pArrmature->getAnimation()->setFrameEventCallFunc(this,frameEvent_selector(LoadingGongShiLayer::onFrameEvent));//添加骨骼动画关键帧回调函数

_pArrmature->getAnimation()->setMovementEventCallFunc(this, movementEvent_selector(LoadingGongShiLayer::animationEvent));//添加骨骼动画动作事件回调函数

this->addChild(_pArrmature);

//播放完触发事件
void LoadingGongShiLayer::animationEvent(CCArmature *armature, MovementEventType movementType, const char *movementID){
    std::string id = movementID;
    CCSize size = CCDirector::sharedDirector()->getWinSize();
    if (movementType == LOOP_COMPLETE)
    {
   if (id.compare("walk") == 0)
        {
            CCLOG("骨骼动画行走结束");
        }
    }
}
//关键帧
void LoadingGongShiLayer::onFrameEvent(Bone *bone, const char *evt, int originFrameIndex, int currentFrameIndex)
{
    if(strcmp(evt,"100") == 0)
    {
        CCLOG("响应事件");
    }
}

2、骨骼动画属性

        string a = _pArrmature->getAnimation()->getCurrentMovementID();//获取当前播放的动画
        int q = _pArrmature->getAnimation()->getCurrentFrameIndex();//获取当前帧

CCArmature *m_pArmature = CCArmature::create(_pArrmature->getName().c_str());//创建一个新的骨骼动画2

m_pArmature->getAnimation()->play(a.c_str());//骨骼动画2播放骨骼动画1正在播放的动作

        m_pArmature->getAnimation()->gotoAndPlay(q);//骨骼动画2播放骨骼动画1正在播放的帧

3、为骨骼动画的一个骨骼添加粒子效果

    //设置粒子    CCParticleSystem *p1 = CCParticleSystemQuad::create("resParticles/DR_gongji_bingjian_hd.plist");
    //创建一个骨骼
    CCBone *bone  = cocos2d::extension::CCBone::create("p1");    //在新骨骼上面添加粒子效果
    bone->addDisplay(p1, 0);
    bone->changeDisplayByIndex(0, true);
    bone->setIgnoreMovementBoneData(true);
    bone->setZOrder(100);
    bone->setScale(1.2f);
    _pArrmature->addBone(bone, "wuqi");//"wuqi"为骨骼动画中骨骼的名称

cocos2dx 2.2.1 骨骼动画使用

时间: 2024-10-14 00:27:16

cocos2dx 2.2.1 骨骼动画使用的相关文章

cocos2dx 2.2.1 骨骼动画释放

2.2.1中骨骼动画释放不完全,需要更改源码进行手动释放,释放方法不能放在析构函数和onExit()函数中. 第一步修改源码:文件位置:extensions/CocoStudio/Armature/utils/CCDataReaderHelper.cpp: if (pAsyncStruct->imagePath != "" && pAsyncStruct->plistPath != ""){ pthread_mutex_lock(&

Cocos2d-x 3.0 cocostudio骨骼动画的动态换肤

概述 游戏中人物的状态会发生改变,而这种改变通常要通过局部的变化来表现出来.比如获得一件装备后人物形象的改变,或者战斗中武器.防具的损坏等.这些变化的实现就要通过动态换肤来实现.在接下来的这个Demo中,点击屏幕会动态更换小人手中的武器.先上图: 制作动画 我这里使用cocostudio自带的动画工程,HeroAnimation,打开. 添加我们的资源 插入渲染资源 更多内容还请移步 http://www.sollyu.com/562/ Cocos2d-x 3.0 cocostudio骨骼动画的

cocos2d-x 3.0 版本 骨骼动画设置shader

因为骨骼动画是由多个sprite组成, 所以需要遍历每个sprite 才能修改整体, 开头这样设置,在游戏中发现走路状态没问题,攻击状态就有部分sprite没效果 for (auto & object : armObj->getBoneDic()) { if (cocostudio::Bone *bone = dynamic_cast<cocostudio::Bone *>(object.second)) { Node *node = bone->getDisplayRen

cocos2dx 使用spine制作骨骼动画

刚刚接触骨骼动画,所以写一篇文章记录. 1.首先先画好人物的每个部件: 哈哈,比较挫 我用的是spine1.7.03版本,比网上很多教程使用的版本都低,所以操作方法貌似有点不一样,也比较麻烦. 2.打开spine,加载每个部件的图片: 选择好路径后,spine会自动帮我们加载每张图. 3.在setup模式下摆放好位置 如果要改变叠放层序,需要在Draw_Order里拖拽先后顺序 这是已经绑定骨骼后的样子,下一步描述 4.绑定骨骼 第一根骨骼一般绑定在root节点,先点击"create"

cocos2dx骨骼动画Armature源码分析(二)

flash中数据与xml中数据关系 上篇博文从总体上介绍了cocos2dx自带的骨骼动画,这篇介绍一下导出的配置数据各个字段的含义(也解释了DragonBone导出的xml数据每个字段的含义). skeleton节点 1 <skeleton name="Dragon" frameRate="24" version="2.2"> name:flash文件名字. frameRate:flash帧率. version:dragonbones

cocos2d-x 3.8.1的骨骼动画加载方法addArmatureFileInfo仍然存在问题

提出如题所示的问题,心里非常别扭,但的确是事实.因此,Cocos Studio(我目前使用的是 2.3.2)在许多方面还有改进的地方,包括与之相对应的cocos2d-x中的代码操作部分. 问题 目前,我的试验结果发现,使用cocos2d-x 3.8.1中提供的如下方法: ArmatureDataManager::getInstance()->addArmatureFileInfo(filename); 无法正常加载Cocos Studio 2.3.2导出的骨骼动画资源文件.例如如下代码无法正常通

Android设备 cocos2dx 骨骼动画注册事件播放音效,退到后台再返回黑屏问题

最近遇到一个cocos2dx 骨骼动画注册事件播放音效,在骨骼动画播放的时候,按HOME键退到桌面,再次打开游戏的时候,会黑屏. 解决办法如下,可能不是太完美,至少解决了大部分问题. 1.在org.cocos2dx.lib下的 Cocos2dxRenderer.java 中添加native方法 public static native void setIsPause(boolean isPause); 2.在Cocos2dxRenderer.java对应的Java_org_cocos2dx_li

Cocos2d-x 3.8.1+Cocos Studio 2.3.2捉虫记之控制场景文件中的骨骼动画

Cocos2d-x 3.8.1+Cocos Studio 2.3.2捉虫记之控制场景文件中的骨骼动画 引子 这段时间一直努力在把早期版本的拇指接龙游戏(Cocos2d-x 2.2.3+CocoStudio 1.4.0.1)升级到当前相对稳定的高大上环境--Cocos2d-x 3.8.1+Cocos Studio 2.3.2.行程中遇到不少麻烦,时间不知不觉像流水一样悄然逝去(这正是我时不时酸酸地想起"程序猿"三字的主要原因).想之再三,还是努力记录下来,一来为自己可能逝去的记忆,二来为

[寒江孤叶丶的Cocos2d-x之旅_39]Cocos骨骼动画功能解密

原创文章,欢迎转载,转载请注明:文章来自[寒江孤叶丶的Cocos2d-x之旅系列] 博客地址:http://blog.csdn.net/qq446569365 原创文章,首发地址:http://www.cocos.com/cocos/dynamic/2015/0908/82.html 在游戏中,人物的各种动作是必不可少,一般实现人物动作的方式有两种,序列帧动画或骨骼动画.Cocos在更新到2.x版本之后,便没有了骨骼动画的功能,使得开发者非常困扰.终于在本次更新中,Cocos编辑器将骨骼动画添加