今天研究了一下cocostudio,包括动画编辑器和UI编辑器,其他的俩个感觉资料很少,就没有看了,等以后再说吧。先来说一下动画编辑器的使用吧。我将把我用到的资源和这个cocostudio在文章的最后留下下载地址,供大家使用。关于这个编辑器的使用网上也是有不少资料的,大家可以去看看,我这里说一下我遇到的问题。第一就是选错了编辑器,本来要编辑的是动画,开始的时候却选择了UI编辑器,让我弄了半天,所以大家在选择的时候选对了。然后就是新建工程什么的,以及cocostudio中的一些工具栏等等这个都很简单,我这里留个好的文章链接和cocostudio的用户手册,有了这俩个就足够了,任何关于软件使用的问题应该都可以解决,CocoStudio动画编辑器简易教程CocoStudio帮助手册

Cocostudio动画编辑器的使用

新建工程命名为test1,然后导入资源,这里我要创建俩个动画。在形体模式下将一张动画拖动到渲染区,命名这个层为layer1,然后切换到动画模式,将动作名称改为run。

Cocostudio动画编辑器的使用 Cocostudio动画编辑器的使用

接下来的是关键的步骤,本人在这步上犯了不少错,按我如下的方法进行操作。

Cocostudio动画编辑器的使用

上图中先选中了layer1,然后将资源区的精灵帧拖动到layer1上边,如果你是选错了编辑器,怎么都不会拖过去的,然后你就可以改它的一些属性,比如是否循环播放,播放间隔什么的。为了说明几个误区,我们再来新建一个动画。在动作列表新建一个动画命名为kill,然后选中这个动画名称后切换到形体模式,这个时候在渲染区是没有内容的,但是在对象结构中有一个layer1。我们从资源窗口选中一张图片添加到渲染区,然后再次切换到动画模式。切换过来以后的整个界面如下。

Cocostudio动画编辑器的使用 Cocostudio动画编辑器的使用

这个时候你虽然在动作列表选中的是kill,或者是run,但是在动画帧中layer1和layer2都会显示出来的。所以不要以为一个动画中包含了俩个layer层,当然了一个动画中是可以包含多个layer层的,但是在动画帧窗口所有动画的动画帧都会显示出来的。然后就是和上边相同的操作了。

Cocostudio动画编辑器的使用

这个就是动画编辑器的基本使用了,当然骨骼动画什么的我也不会用,有兴趣的话你可以教我。下面来说说怎么在程序中使用我们生成的东西。我在网上看了不少的文章,他们的写法还都不一样,可能是版本的问题吧,现在我在cocos2dx2.2的版本下使用一下我们做好的动画。如果你还没有将上一步的工程导出,先导出来,在工程路径下会有一个export的文件夹,将这个文件夹复制到你工程的resource文件夹下。下面就上代码了。

//在工程中必须包含这俩句代码
#include "cocos-ext.h"
using namespace cocos2d::extension;
bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !CCLayer::init() )
    {
        return false;
    }

    CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();

	//1、从导出文件异步加载动画,这个只需要做一次,一般放在我们进入游戏和其他的资源一起加载的时候
	//参数的顺序要对,按照我的写就可以了
	CCArmatureDataManager::sharedArmatureDataManager()->addArmatureFileInfo("Export/test10.png",
		"Export/test10.plist","Export/test1.ExportJson");

	//2、创建CCArmature,里边的参数是创建的工程名称,参数一定要写对了
	CCArmature * armature1 = CCArmature::create("test1");
	//3、playByIndex()中传入的参数是动画的编号,是从0开始的数字,在我的项目中0代表的是run的动画
	armature1->getAnimation()->playByIndex(0);
	//设置一些属性然后添加
	armature1->setPosition(ccp(visibleSize.width/2,visibleSize.height/2));
	this->addChild(armature1);

	//从第二步开始继续创建CCArmature,我不知道是否还有其他的方法
	CCArmature * armature2 = CCArmature::create("test1");
	//等同于armature2->getAnimation()->playByIndex(1);,输入动画的名称
	armature2->getAnimation()->play("kill");
	armature2->setPosition(ccp(visibleSize.width/3,visibleSize.height/3));
	this->addChild(armature2);

    return true;
}

Cocostudio动画编辑器的使用

最后留下资源的下载地址。下载资源和源代码