Cocos Studio教程三:认识并利用Cocos Studio的果实

注意:本教程是2.1.4版本,2.2版本以后请仅作参考接口变化较多。
如需学习,建议参考:
【2014/03新教程】http://www.cocoachina.com/bbs/read.php?tid=194293
最新的cocostudio samples讲解覆盖了所有的内容,敬请查看新的教程

前面两节课程带领大家熟悉了Cocos2d-x,我们看到了一次开发、处处运行的跨平台能力,也感受到了这种跨平台给我们的产品开发所带来的种种好处。从这一课起我们开始一起认识CocoStudio。

CocoStudio是coco家族的一份子,每周的迭代开发使产品的问题能够及时解决。它独特的架构使原先顺序进行的产品开发可以完全并行开发。ui美术,动作美术,策划,数值策划的工作能够更充分的独立,让每一个兵种做自己最擅长的工作,让美术充分发挥美感,让策划充分发挥创意,完全不需要等程序实现了之后才能看到效果。看到这么多好处,我想大家一定迫不及待的想感受下CocoStudio了,下面开始我们的CocoStudio课程。

一、认识CocoStudio编辑器

首先前往我们的http://www.cocostudio.org/官网下载CocoStudio工具集安装包。(制作教程时使用的是3.1.0)

下载后点击运行,按照提示安装即可。完成后打开可以看到如下界面。编辑器每次打开的时候会检查版本更新,如若您只是学习教程阶段可考虑使用该版本。

?

这是一个引导界面,帮助我们选择需要的编辑器。第1个是Action Editor动作编辑器,第2个是UI Editor 界面编辑器,第三个是SceneEditor 场景编辑器,第四个是Data Editor数值编辑器。

下面我为大家展示下每种编辑器所生成的文件,大家可以根据文件类型来判断该资源属于何种编辑器,以及我们该如何在项目中使用它们。

1:Action Editor动作编辑器

2:UI Editor?? 界面编辑器

3:Scene Editor 场景便捷器

4:Data Editor 数值编辑器
因数值编辑器现在还停留在初版,所以关于数值编辑器的教程以后再制作。

大家可以看到,文件结构都非常类似,都有Backup、Export、Json、Resources文件夹,还都有一个以.xml.xxx结尾的入口文件。该文件后缀表明了该项目是属于何种编辑器的。并且该文件的图标也会显示对应编辑器的图标。其中Export文件夹是项目导出后的文件,
为了大家学习我们为大家准备一些示例文件,http://upyun.cocimg.com/CocoStudio/course/coostudiov0.3.1.0_courses01.zip,1。大家可以先用一些时间逐个用CocoStudio打开看一看。

二、在程序中使用CocoStudio生成的文件

首先python脚本创建一个新的项目pythoncreate_project.py -project HelloCocoStudio -packageorg.CocoStudio.Hello -language cpp,详细过程可以参考上一节课程。

此处我们的项目名称为HelloCocoStudio,接下来找到Cocos2d-x目录,并进入项目文件夹\projects\HelloCocoStudio目录,将我们的示例文件中的\Resources文件夹替换项目的\Resources文件夹。

结构如下图:

使用Visual Studio打开\proj.win32\HelloCocoStudio.sln测试运行。

在解决方案资源管理器中找到AppDelegate 和HelloWordScene两个类,如下图:

第一个AppDelete类是程序的入口类,了解Object-c 的人一定会很特别眼熟,因为Cocos2d-x 的前身是cocos2d-iphone,所以代码风格及命名规范都与Object-C类似。第二个HelloWordScene类是脚本生成项目时自动生成的场景类,正式项目中都会被替换掉。但是对于我们初学者来说却是一个很好的入门示例。

下面我们打开HelloWordScene.cpp文件,在类视图中我们可以看到该类有四个函数:

这四个函数我做一个简单介绍:

  CREATE_FUNC(HelloWorld);


```


 这个函数是Cocos2d-x提供的宏函数,我们可以看下这个函数的定义F12(Cocos2dx_v2.1.4f\cocos2dx\platform\CCPlatformMacros.h34至54行)
 可以看出这个函数的作用的调用init()函数,因为init函数是Object-C语言的规范,C++中并没有,Cocos2d-x 为了统一规范而创建了这个宏函数。


```objc



bool HelloWorld::init()



```

 这个函数的作用主要是做一些初始化的工作。

void HelloWorld::menuCloseCallback(CCObject* pSender)


```

 这个是关闭按钮的回调函数。

CCScene* HelloWorld::scene()



```

 这个学习C++的应该都比较熟悉了,它是这个类的构造函数。

终于编辑成功了··好坑爹,只能放5000个字符···:8:

幸苦了!:14:

示例文件的下载在哪里?没找到链接。
另外,我还看到好多干扰文字,看得好累。
用的是chrome浏览器。

恩,论坛发帖乱了,今天抽空修改下,链接也会加上。

:14:好腻害~~顶顶~

UILayer::create
CCUIHELPER->createWidgetFromJsonFile
请问这两个接口在哪里的?
cocos 3.0才有的吗?

libExtensions的接口,2.2版本后都是cocos2d-x自带的,之前需要libExtensions包

CCJsonReader方法新版本已更名为CCSSceneReader!

我下的coocs2dx.2.1.4 也要导入cocostudio 的库代码吗?
怎么没发现 UILayer ?

好吧,我下2.2版本的就有了。。。2.1.4果然没有。

2.1.4是独立发的,可以到下载帖的底部找老版本的编辑器,以及对应的cocos2d-x

我直接下载你的demo运行,提示,,这怎么解决

我自己的工程也会这样

请问你的cocos2d-x版本是多少呢?如果是2.2之前的版本还需要下载cocostudio扩展包

我的是cocos2d-x-2.2的,里面testCpp也有cocostudio的demo,但是我一使用CCNode *pNode = CCSSceneReader::sharedSceneReader()->createNodeWithSceneFile(“EditBox_1.json”);这句就会出现上面的情况

CCNode *pNode = CCSSceneReader::sharedSceneReader()->createNodeWithSceneFile(“EditBox_1.json”);加了有提示图上的,大神们求解决。烦恼了很久

你好,我这里根据你的描述并不能判断问题出在哪里,希望你能跟我单独联.系(xxxxxxxxxx)一下,以便找到错误的原因,谢谢

谢谢了,给我讲解的很详细,原来我是把做的UI放进去了,UI跟Scene是有区别的,不能一样的读取。scene也有ui一样的功能。只要用Scene editor做就好了,还有cocos2d-x创建项目的方法要用最新的。

“getIsLoop”: 不是“cocos2d::extension::CCComAudio”的成员
“getRender”: 不是“cocos2d::extension::CCComRender”的成员

请问要改成用什么呢?