本文目录
- 请教用cocosbuilder编辑界面后怎么控制CCSprite
- 怎样用lua绑定cocosbuilder中的控件
- cocos studio和cocosbuilder什么区别
- 如何使用Cocosbuilder
- 如何实现cocosbuilder的多语言版本
- cocosbuilder怎么自定义类
请教用cocosbuilder编辑界面后怎么控制CCSprite
Cocos2d一直缺乏一个好用的可视化编辑工具,使用Cocos2d的开发人员只能自己动手写代码来编辑场景,或者自己开发场景编辑器。
但现在可以使用CocosBuilder工具来减轻可视化工作,不过我发现现在网上CocosBuilder的说明和使用的相关资料比较少。
所以就把自己对CocosBuilder工具使用一点经验写出来,希望大家也一起共同讨论。
首先,下载工具和new file的不用说了吧。
我现在用的CocosBuilder1.0,example 里面有ccb 例子和 源代码 ,初学者的要看多几遍。
下面我说一下要注意的问题:
1、首先新建文件啦。我命名为MainMeun.ccb。
之后建议view选择none,这样可以去除模拟器的边框,更加容易可视化编辑
2、添加object
3、首先我添加CCSprite
4、为第一个CCSprite添加背景图,在右边工具栏,选择自己想要的图片。
(注:CocosBuilder1.0有个BUG,你选择的图片只能选择你的ccb文件保存的那个文件夹里的图片)
如:你新建一个ccb文件是保存在test文件夹的,那么你只能往test文件夹里放入图片可让CCSprite能够选择图片,图下是我保存test.ccb的文件夹里面有我的图片,这样CCSprite就可以选择自己想要的图片
这是出来的效果如下图(我添加了CCSprite和一个按钮功能):
5、添加按钮控件,让其有事件触发
这个按钮触发时间我建议真的多看几遍cocosbuilder的例子。不过如果试了几遍的都说不行啊,为什么选择器(Selector)里的函数方法名不见了,明明已经写上去了,但是下次打开不见了,诸如此类的问题。现在打开我的项目,打开我新建的MainMeun.ccb
如果你的按钮事件不成功的话是因为你的Selector下的《string》《/string》缺少了函数名,你添加进去就可以用了。
6、同理,我新建多一个ccb,命名为help.ccb,是让响应我们上面设置好的helpButton:,使我们按下help按钮可以跳转页面。
7、我们看看成果,打开xcode运行模拟器
Cocos2d一直缺乏一个好用的可视化编辑工具,使用Cocos2d的开发人员只能自己动手写代码来编辑场景,或者自己开发场景编辑器。
但现在可以使用CocosBuilder工具来减轻可视化工作,不过我发现现在网上CocosBuilder的说明和使用的相关资料比较少。
所以就把自己对CocosBuilder工具使用一点经验写出来,希望大家也一起共同讨论。
首先,下载工具和new file的不用说了吧。
我现在用的CocosBuilder1.0,example 里面有ccb 例子和 源代码 ,初学者的要看多几遍。
下面我说一下要注意的问题:
1、首先新建文件啦。我命名为MainMeun.ccb。
之后建议view选择none,这样可以去除模拟器的边框,更加容易可视化编辑
2、添加object
3、首先我添加CCSprite
4、为第一个CCSprite添加背景图,在右边工具栏,选择自己想要的图片。
(注:CocosBuilder1.0有个BUG,你选择的图片只能选择你的ccb文件保存的那个文件夹里的图片)
如:你新建一个ccb文件是保存在test文件夹的,那么你只能往test文件夹里放入图片可让CCSprite能够选择图片,图下是我保存test.ccb的文件夹里面有我的图片,这样CCSprite就可以选择自己想要的图片
这是出来的效果如下图(我添加了CCSprite和一个按钮功能):
5、添加按钮控件,让其有事件触发
这个按钮触发时间我建议真的多看几遍cocosbuilder的例子。不过如果试了几遍的都说不行啊,为什么选择器(Selector)里的函数方法名不见了,明明已经写上去了,但是下次打开不见了,诸如此类的问题。现在打开我的项目,打开我新建的MainMeun.ccb
如果你的按钮事件不成功的话是因为你的Selector下的《string》《/string》缺少了函数名,你添加进去就可以用了。
6、同理,我新建多一个ccb,命名为help.ccb,是让响应我们上面设置好的helpButton:,使我们按下help按钮可以跳转页面。
7、我们看看成果,打开xcode运行模拟器
怎样用lua绑定cocosbuilder中的控件
Since Cocos2d-x 3.0, we use bindings-generator to generate lua bindings for c++ automatically自从Cocos2d-x 3.0,我们使用 bindings-generator 自动生成 c++ lua 绑定。bindings-generator 是基于 tolua++,你可以配置 tools/tolua目录下的ini文件,然后运行genbindings.py脚本生成绑定代码。通过使用这种方法,大大降低了记录的pkg文件的配置工作。接下来,就让我们一起来CustomClass作为一个例子,我们将向您展示如何使用bindings-generator来生成绑定。创建自定义类(CustomClass)这里是代码片段
// CustomClass.h#ifndef __CUSTOM__CLASS#define __CUSTOM__CLASS#include “cocos2d.h“namespace cocos2d {class CustomClass : public cocos2d::Ref{public: CustomClass(); ~CustomClass(); static cocos2d::CustomClass* create(); bool init(); CREATE_FUNC(CustomClass);};} //namespace cocos2d#endif // __CUSTOM__CLASS
(注意:为了保持页面短而干净,我们省略了cpp文件和bindings-generator只扫描头文件。)有一件事你应该记住,自定义类应该继承cocos2d::Ref类,这主要是由于所有的全局对象的创建和销毁由REFID_PTR_MAPPING地图在c++层处理的事实。如果我们继承该类的Ref,那么它的析构函数将处理这些脏东西。
cocos studio和cocosbuilder什么区别
1、支持的平台不一样
cocostudio目前的版本只能在windows下面使用(ps:据说mac版也正在开发之中,所以未来一段时间也可能会有mac版本),而cocosbuilder版本目前只能在mac下使用,所以你可以根据自己目前手里的机器的操作系统来决定使用哪款软件。
2、UI体系不同
cocosbuilder是对cocos2dx本身控件的一些封装,比如基本的CCLayer、CCNode、CCLabelTTF、CCControlButton等控件都可以在cocosbuilder中看到,在程序中,你需要引用ccbi文件,你只需要拿到这些对象的引用即可在程序中设置他们的属性,以及添加一些监听。
但是cocostudio则不然,它封装了自己的一套UI体系,比如出现了UITextButton、UILabel、UIButton等控件,这些控件与cocos2dx中原生的控件不尽相同,所以在程序中使用的时候,起初你会觉得不太适用,仿佛进入了另一种编程环境。但是个人觉得如果你熟悉了之后,还是蛮好用的。
3、开发团队
cocostudio是由cocos2dx作者支持的团队,个人觉得后期cocostudio将是主流。
4、bug
cocostudio目前只有1.0版本,所以其中存在为数不少的bug,并且文档欠缺,而cocosbuilder则相对较为成熟,其中的bug不少太多,文档也比较多。
-builder
如何使用Cocosbuilder
我们将创造游戏主角Cocos Dragon。Cocos Dragon有一对很小的翅膀因此他飞不高,所以我们需要让他触碰金币来给他加速上升直到碰到炸弹为止。你可以到youtube看这个游戏的视屏:youtube
本游戏可以在iOS模拟器上运行,游戏通过触摸来操作方向。假如你希望把这个游戏设计运用到你的产品中,我推荐你用重力感应来替换触摸方式。
设置工程
建立新的xcode工程。工程名称:CocosDragon。
下载本教程需要用到的美术资源,解压并加到工程中。
现在我们需要建立游戏相应的CocosBuilder 工程。打开CocosBuilder 选择File -》New Project。命名为CocosDragon 保存并把资源文件放到xcode的Resources 文件夹(CocosBuilder的资源在一个名为ccbResources的文件夹)打开theHelloCocosBuilder.ccb文件.我们不会使用HelloCocosBuilder 文件,所以你可以在CocosBuilder文件系统中干掉他。
创建动画类型的主界面
我们将开始制作Cocos Dragon所有的界面文件,然后将界面链接到相应的代码中。首先,我们创建一个主菜单。
在CocosBuilder打开的CocosDragon 工程中选择File-》New File。我们将让主界面只支持iPhone,所以在resolutions settings(方案设置)中勾选iPhone Portrait ,并确保root object type(根对象类型)为CCLayer 并勾选full screen (全屏)。
点击创建,然后命名为“ MainMenuScene ”并且保存到Resources 文件夹。一个新的空文件MainMenuScene.ccb将在CocosBuilder中开启。
主界面我们会包含一个渐变的背景,一个logo,一个开始游戏的按钮,和几片云彩的动画。首先,让我们开始加入渐变的背景。在窗口顶部的工具栏点击CCLayerGradient 按钮。
我们希望渐变层(gradient layer)充满整个屏幕。选择这个层,设置填充(content size)大小单位为“%”并且设置宽高为100×100.
让我们把颜色修改为其他值以遍更适合我们游戏的主色调。点击开始颜色(start color)和完成颜色( end color)以至RGB值为下图显示这样。
继续添加logo到主界面( menu scene)。在左边的工程视图(project view)中,拖拽logo.png到canvas 区域。你添加的图片就会像如下那样显示:
当启动主选单场景时会有漂亮的动画,但是我们还需要在启动时增加logo的动画。首先,点击canvas 区域下面的时间设置来指定动画的长度。这里我们把动画出现的时间线设置为2秒。
现在,我们把logo视为一个精灵,并设置logo精灵的关键帧(keyframes )。拖拽时间戳到动画完成的地方(我们这个工程就是之前设置的 00:02:00),并且确保logo已经被选定。在动画菜单中选择插入关键帧位置(Keyframe /Position),或者使用快捷键’P’.在时间线界面(timeline view),logo精灵会折叠并显示刚才添加的关键帧。
一旦关键帧插入时间线的节点中,我们节点的位置既可以自动添加新的关键帧。首先,移动时间戳到原点(00:00:00的位置)。然后,拖拽logo到绘图界面( canvas area)的顶部可见区域(你可以在拖拽的时候按住shift按钮以便对齐)。当你正在做以上操作时,一个新的关键帧就被自动添加到时间线的原点处,并且我们在两个关键帧中间生成平滑过渡的所有帧。
你可以点击Play来测试一下这个动画。你也可以移动时间戳来看看每个帧的位置。
这个动画我们完成的很漂亮并且每帧的过渡很平滑,但是让我们再加点料。在关键帧之间右击 插值线(译者注:interpolation line,就是插入了过渡帧的地方)并且选择弹出(Bounce Out)。
-c
如何实现cocosbuilder的多语言版本
Magento (麦进斗)后台 store manage里面可以设置多店铺、多语言视图,如果是多语言界面不需要重写功能 在系统配置里面左侧会有下拉菜单选项可以分别对不同的界面进行设置 添加目录产品的时候也需要选择不同的界面进行添加
-builder
cocosbuilder怎么自定义类
使用自定义类
CocosBuilder的使用方法是通过自定义类。在CocosBuilder中选中一个对象并在属性栏中输入自定义类的类名就可以了。记住你的自定义类必须是你选中对象的一个子类(如CCLayer,CCNode等等)
当加载ccbi文件时,你需要定义两个自定义类(也可以是一个)。自定义的Loader类继承自cocos2d::extension::CCLayerLoader。
自定义的Layer类继承自
cocos2d::extension::CCBSelectorResolver
cocos2d::extension::CCBMemberVariableAssigner
cocos2d::extension::CCNodeLoaderListener
在你的自定义Loader类中你需要加入初始化代码:
public:
CCB_STATIC_NEW_AUTORELEASE_OBJECT_METHOD(CustomLayerLoaderClass, loader);
CCB_VIRTUAL_NEW_AUTORELEASE_CREATECCNODE_METHOD(CustomLayerClass));
使用Loader类的loader方法,CCBReader可以初始化你的自定义Layer类。
请注意CCBReader不会使用任何自定义的init方法。如果要使用自定义的init方法,你可以在自定义Layer类的构造函数中调用。
关联成员变量
在ccbi中引用的对象可以在文件被加载时关联为成员变量。这些成员变量可以定义在文档的根节点中,在这种情况下它必须分配一个自定义类。
关联成员变量很简单,只要在头文件中声明它们就可以了。
如果要初始化成员变量,你可以在自定义Layer类中重载onAssignCCBMemberVariable方法并输入代码:
CCB_MEMBERVARIABLEASSIGNER_GLUE(this, “sprtBurst“, CCSprite *, this-》mSprtBurst);
sprtBurst是在CocosBuilder中定义的属性名。
在CocosBuilder中选择对象,在Code Connections面板下把Don’t assign变为Doc root var或者Owner var。然后在右边的文本框中输入成员变量的名字。
-c