cocos2dx 2.2.1 骨骼动画释放

2.2.1中骨骼动画释放不完全,需要更改源码进行手动释放,释放方法不能放在析构函数和onExit()函数中。

第一步修改源码:文件位置:extensions/CocoStudio/Armature/utils/CCDataReaderHelper.cpp;

 if (pAsyncStruct->imagePath != "" && pAsyncStruct->plistPath != ""){
       pthread_mutex_lock(&s_GetFileDataMutex);                        (删除)CCArmatureDataManager::sharedArmatureDataManager()->addSpriteFrameFromFile(pAsyncStruct->plistPath.c_str(), pAsyncStruct->imagePath.c_str());                  (更改为)CCArmatureDataManager::sharedArmatureDataManager()->addSpriteFrameFromFile(pAsyncStruct->plistPath.c_str(), pAsyncStruct->imagePath.c_str(), pDataInfo->filename.c_str());
       pthread_mutex_unlock(&s_GetFileDataMutex);
          }
  CCDataReaderHelper::addDataAsyncCallBack(float dt)
          {
              std::string configPath = pDataInfo->configFileQueue.front();
              pthread_mutex_lock(&s_GetFileDataMutex);
             (删除)CCArmatureDataManager::sharedArmatureDataManager()->addSpriteFrameFromFile((pAsyncStruct->baseFilePath + configPath + ".plist").c_str(), (pAsyncStruct->baseFilePath + configPath + ".png").c_str());
            (更改为)CCArmatureDataManager::sharedArmatureDataManager()->addSpriteFrameFromFile((pAsyncStruct->baseFilePath + configPath + ".plist").c_str(), (pAsyncStruct->baseFilePath + configPath + ".png").c_str(), pDataInfo->filename.c_str());
              pthread_mutex_unlock(&s_GetFileDataMutex);
              pDataInfo->configFileQueue.pop();
          }

第二步在删除骨骼动画的函数中调用:

armature->removeFromParent();
        CCArmatureDataManager::sharedArmatureDataManager()->removeArmatureFileInfo("Armature/123/123.ExportJson");
        CCTextureCache::sharedTextureCache()->removeAllTextures();

骨骼动画释放完成。

cocos2dx 2.2.1 骨骼动画释放

时间: 2024-10-27 11:30:00

cocos2dx 2.2.1 骨骼动画释放的相关文章

cocos2dx 2.2.1 骨骼动画使用

使用骨骼动画: // 加载资源文件 png 图片,plist 文件和 ExportJson 动画文件,一般而言可以在场景运行之初加载此资源 CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo("resTest/Hero/Hero.ExportJson"); CCArmature* _pArrmature = CCArmature::create("Hero"); _pA

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编辑器将骨骼动画添加