iOS的Cocos2d-x工程载入CocoStudio制作的动画素材'xxx.csb/csd'文件,添加自定义用户头像图片到动画。

原创 2016年06月15日 17:05:22

在Cocos2d-x工程载入CocoStudio制作的动画素材'xxx.csb'或'xxx.csd'文件只需要在scene文件如'HellowWorldScene.cpp'中的'bool HelloWorld::init()'方法中加入下方代码载入csb或者csd动画文件就可以。

//    //csb文件动画载入
//    auto rootNode = CSLoader::createNode("tmp.csb");
//    rootNode->setPosition(Vec2(visibleSize.width/2, visibleSize.height/2));
//    addChild(rootNode);
//    auto action = CSLoader::createTimeline("tmp.csb");
//    rootNode->runAction(action);
//    action->gotoFrameAndPlay(0, true);
    //csd动画文件载入
    auto node = CSLoader::getInstance()->createNodeWithFlatBuffersForSimulator("Node.csd");
    node->setPosition(Vec2(visibleSize.width/2, visibleSize.height/2));
    this->addChild(node);
    cocostudio::timeline::ActionTimeline* action = cocostudio::timeline::ActionTimelineCache::getInstance()->createActionWithFlatBuffersForSimulator("Node.csd");
    if (action)
    {
        node->runAction(action);
        action->gotoFrameAndPlay(0);
    }
Demo下载链接


如果遇到了"libpng error: CgBI: unhandled critical chunk"错误,如果使用的是Xcode 7.3+的版本,需要在工程的“Build Settings"下设置"Compress PNG Files"为"NO"和"Remove Text Metadata From PNG Files"为"NO",否则会出现无法打开图片的libpng的问题。参考"[Solved] libpng error: CgBI: unhandled critical chunk + Xcode 7.3",但是仅仅修改"Remove Text Metadata From PNG Files"为"NO"可能还无法解决问题,还需要修改"Compress PNG Files"。

添加自定义用户头像到动画

只需要在我们添加的cocos2d的node中通过tag值或者name值一层层寻找我们需要添加头像的那个child node。然后用我们需要添加的图片生成sprite node,添加到那个child node上即可。如果动画是重用的,记得每次添加自定义图片node时,删除之前添加的图片node。

代码如下:

void SatelliteScene::setIcon(Image* image1)
{
    auto head1 = node->getChildByTag(4);
    
    if(image1!=nil && head1!=nil){
        printf("head");
        auto texture = new Texture2D();
        texture->initWithImage(image1);
        texture->autorelease();
        auto icon = Sprite::createWithTexture(texture);
        icon->setScaleY(kSatelliteHeight/icon->getContentSize().height);
        icon->setScaleX(kSatelliteWidth/icon->getContentSize().width);
        icon->setRotation(13);
        icon->setPosition(179, 161);
        icon->setTag(6666);
        head1->removeChildByTag(6666);
        head1->addChild(icon);
    }
}

此外,当图片比较大,像素比较高时,在做UIImage转Image的时候会出现转换速度慢,系统卡顿。那么需要使用CGContext把UIImage的size减少,再做格式转换,最后添加cocos2d的node中。CGContext的操作需要在子线程中进行。而UIImage转Image尽量在主线程中进行,避免C++下的线程同步问题。


相关文章推荐

linux下mysql5.7的my.cnf在原有的基础上设置了utf8字符集

linux下mysql5.7的my.cnf在原有的基础上设置了utf8字符集

Linux中对MySQL优化

Linux下mysql优化

cocos2d-x3.1 Cocostudio 动画编辑器

  • 2014年09月15日 10:05
  • 2.32MB
  • 下载

cocos2d-x与Android混编实现换“头像图片”

最近接手玩家个性化功能,其中较难处理就是更换玩家的“头像”操作。通过努力搜索,终于找到解决方案了。      若更换玩家的“头像”操作,其实就是调用android servers服务里面的本地图片,以...

cocos2d-x 2.2 CocoStudio动画和界面编辑器按钮控制以及场景编辑器使用

关于如何使用CocoStudio导出动画文件这里就不介绍了,网上教程很多。这里主要介绍动画播放的控制 1.添加获取第几个动画函数,看了下CCArmatureAnimation文件,系统没有获取当前第几...

CocoStudio在Cocos2d-x Lua项目中的应用--加载动画

当游戏进入了手游时代, 快成为了开发游戏的主题曲. 开发快, 上线快, Bug修复快, 挣钱也会特别快.   脚本成为了在游戏开发中的助力, 而且脚本可以即时更新的特性, 更是为了避免平台冗长的审核...

Cocos2d-x 3.0 开发(七)在程序中处理cocoStudio导出动画

使用cocoStudio可以方便的制作动画,接下来的工作就是在我们的程序中使用制作好的动画。这篇中,我将使用程序将两个动画连接起来。有图有真相:...
  • fansongy
  • fansongy
  • 2013年10月22日 22:59
  • 44347

使用 CocoStudio 创建 Cocos2d-x 序列帧和骨骼动画

CocoStudio 简介2 环境搭建与配置3 序列帧动画的创建步骤4 如何在 Cocos2d-x 中运行其动画5 骨骼动画的创建 1 CocoStudio 简介 CocoSt...

使用 CocoStudio 创建 Cocos2d-x 序列帧和骨骼动画

1 CocoStudio 简介 CocoStudio 是由 Cocos2d-x 官方推出的一个专门针对 Cocos2d-x 游戏开发的免费工具集,目前正在开发阶段,且日益完善之中!既是工具集...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS的Cocos2d-x工程载入CocoStudio制作的动画素材'xxx.csb/csd'文件,添加自定义用户头像图片到动画。
举报原因:
原因补充:

(最多只允许输入30个字)