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)
下载后点击运行,按照提示安装即可。完成后打开可以看到如下界面。编辑器每次打开的时候会检查版本更新,如若您只是学习教程阶段可考虑使用该版本。
20130813017.png754×574?
这是一个引导界面,帮助我们选择需要的编辑器。第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++的应该都比较熟悉了,它是这个类的构造函数。