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++下的线程同步问题。


cocos2dx 新版本骨骼动画.csb文件的简单使用

旧版本的cocostudio导出的动画是json格式的,包含资源图,plist文件,和一个json文件; 新版的骨骼动画统一了格式为csb,实现起来比较简单,只是调用方法与以前不同: 先打...
  • u012807517
  • u012807517
  • 2017年03月01日 14:37
  • 1399

libpng error: CgBI: unhandled critical chunk-Cocos2d-x在iPhone真机上 加载图片崩溃提示

Cocos2d-x加载图片资源出现unhandled critical chunk Xcode7.3 设置Remove Text Metadata From PNG Files = NO.就可以...
  • AD_118
  • AD_118
  • 2016年06月13日 11:21
  • 2832

AndridStudio编译错误之——libpng error: CgBI: unhandled critical chunk

错误代码 Error:Execution failed for task ':PulltorefreshLibrary:mergeDebugAndroidTestResources'. > Some...
  • nailsoul
  • nailsoul
  • 2015年12月11日 20:41
  • 5818

xcode8 libpng error: CgBI: unhandled critical chunk

Build Settings => Remove TextMetadata From PNG Files 设置成NO
  • lovehappy108
  • lovehappy108
  • 2016年09月24日 16:29
  • 732

使用x-studio365导入csb并发布到CocosStudio2.x兼容工程

1.首先通过菜单【文件】【新建工程】新建一个空工程2.然后通过【文件】【导入】【CocosStudio已发布资源(*.csb)】 选择导入文件资源根目录,注意资源根目录的确定方法,首先用x-s...
  • xyzzf
  • xyzzf
  • 2017年03月12日 21:58
  • 2940

cocos lua csb动画返回到开始处

-- body   if  self.ai == nil then         return;     end        local map = parent.maps["map13"...
  • u014660247
  • u014660247
  • 2017年05月15日 16:21
  • 291

cocos2dx csb动画换装的问题

cocos2dx 3.x版本,.csb骨骼动画实现换装功能,依旧是扒来的,好东西要分享: 隔了段时间,重拾cocos2dx,发现版本变化太大了...cocos studio 到已经从1...
  • u012807517
  • u012807517
  • 2017年03月01日 13:42
  • 371

Cocos2d-JS中使用CocosStudio资源——帧动画(1)

在本篇博客中,我们将通过一个在Cocos2d-JS中使用从CocosStudio导出的帧动画资源的例子,来简要介绍以下内容:利用ActionTimeLine进行动画切割,如何使用导出的帧动画资源。关于...
  • qiumengchen12
  • qiumengchen12
  • 2015年05月10日 17:13
  • 2131

Cocos2d-x 3.0 开发(四)使用CocoStudio创建UI并载入到程序中

CocoStudio的使用无疑是cocos2d-x 3.0的重要组成部分,接下来我们用它来创建一组UI,并将其读入到程序中显示出来。先上效果图:...
  • fansongy
  • fansongy
  • 2013年10月15日 22:32
  • 68844

Cocos2d-x问题纪录:removeChild和附有PhysicsBody的csb动画

使用Cocos2d-x做游戏总是会出现许多错误,就叫问题,现在开始就把我遇到的一些奇怪的问题都记录下来。目前在做一个简单的休闲游戏。游戏玩法有点像《mmm,Finger》这款游戏,里面会有许多会移动会...
  • loyen1992
  • loyen1992
  • 2015年08月16日 21:52
  • 466
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS的Cocos2d-x工程载入CocoStudio制作的动画素材'xxx.csb/csd'文件,添加自定义用户头像图片到动画。
举报原因:
原因补充:

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