cocos2d-x editor 新建工程时会自动生成游戏框架,如下图
红色边框共有五个区域
- idea 是自动生成的目录,读者不需要操作
- Source是主工程目录,所有的设计和编码都在该目录下完成;
- Resource是项目的资源存放处,包括贴图,字体,粒子,声音等等
- main.js,是程序的主函数入口,里面代码主要用来根据游戏平台处理不同的事件;也控制游戏场景的切换,比如游戏场景一般都包括(选关场景,道具场景,主游戏场景,得分场景等),主函数可以选择你第一进入的场景。main.xml 主要包括游戏的配置,包括游戏运行平台的分辨率,调试模拟器的分辨率。
- MainLayer.ccbx是游戏主场景的设计区域,MainLayer.js是编码区域,一个.ccbx对应一个.js,命名必须保持一致。比如,如果你要做选关界面,可以新建 SelectLayer.ccbx 和SelectLayer.js
- if (sys.platform == 'browser') {
- var require = function (file) {
- var d = document;
- var s = d.createElement('script');
- s.src = file;
- d.body.appendChild(s);
- }
- } else {
- require("jsb.js");
- }
- cc.debug = function (msg) {
- cc.log(msg);
- }
- cc.BuilderReader.replaceScene = function (path, ccbName) { //场景替换
- var scene = cc.BuilderReader.loadAsSceneFrom(path, ccbName);
- cc.Director.getInstance().replaceScene(scene);
- return scene;
- }
- cc.BuilderReader.loadAsScene = function (file, owner, parentSize) { //从owner获取场景
- var node = cc.BuilderReader.load(file, owner, parentSize);
- var scene = cc.Scene.create();
- scene.addChild(node);
- return scene;
- };
- cc.BuilderReader.loadAsSceneFrom = function (path, ccbName) { //从ccb获取场景
- cc.BuilderReader.setResourcePath(path + "/");
- return cc.BuilderReader.loadAsScene(path + "/" + ccbName);
- }
- cc.BuilderReader.loadAsNodeFrom = function (path, ccbName, owner) {
- cc.BuilderReader.setResourcePath(path + "/");
- return cc.BuilderReader.load(path + "/" + ccbName, owner);
- }
- cc.BuilderReader.runScene = function (module, name) { //运行场景
- var director = cc.Director.getInstance();
- var scene = cc.BuilderReader.loadAsSceneFrom(module, name);
- var runningScene = director.getRunningScene();
- if (runningScene === null) {
- cc.log("runWithScene");
- director.runWithScene(scene);
- }
- else {
- cc.log("replaceScene");
- director.replaceScene(scene);
- }
- }
- var ccb_resources = [ //公共资源
- {type: 'image', src: "Resources/HelloWorld.png"},
- {type: 'image', src: "Resources/CloseNormal.png"},
- {type: 'image', src: "Resources/CloseSelected.png"}
- ];
- require("MainLayer.js"); //包括哪些场景都需要require
- if (sys.platform == 'browser') { //如果平台是浏览器
- var Cocos2dXApplication = cc.Application.extend({
- config: document['ccConfig'],
- ctor: function () {
- this._super();
- cc.COCOS2D_DEBUG = this.config['COCOS2D_DEBUG'];
- cc.initDebugSetting();
- cc.setup(this.config['tag']);
- cc.AppController.shareAppController().didFinishLaunchingWithOptions();
- },
- applicationDidFinishLaunching: function () {
- var director = cc.Director.getInstance();
- // director->enableRetinaDisplay(true);
- // director.setDisplayStats(this.config['showFPS']);
- // set FPS. the default value is 1.0/60 if you don't call this
- director.setAnimationInterval(1.0 / this.config['frameRate']);
- var glView= director.getOpenGLView();
- glView.setDesignResolutionSize(1280,720,cc.RESOLUTION_POLICY.SHOW_ALL);
- cc.Loader.preload(ccb_resources, function () {
- cc.BuilderReader.runScene("", "MainLayer");
- }, this);
- return true;
- }
- });
- var myApp = new Cocos2dXApplication();
- } else { //如果是android ios window32等
- cc.BuilderReader.runScene("", "MainLayer"); //直接进入主场景
- }
main.xml 游戏项目的配置 , language我们选用javascript,也可以选择lua。
平台分辨率 designWidth*designHeight 比如苹果iphone5s是640*1136 ,ipad是1024*768 ,meizu mx3 1200*1920,主流我们推荐720*1280。
模拟器分辨率 viewWidth*viewHeight 是模拟器大小, 最好根据designWidth*designHeight 等比例缩放,主流我们推荐360*640 根据自己的需求调节,看下面的模拟器,不同数值不同的界面
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
- "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
- <plist version="1.0">
- <dict>
- <key>name</key>
- <string>Game</string>
- <key>language</key>
- <string>Javascript</string>
- <key>main</key>
- <string>main.js</string>
- <key>designWidth</key>
- <string>720</string>
- <key>designHeight</key>
- <string>1280</string>
- <key>designPolicy</key>
- <string>NO_BORDER</string>
- <key>viewWidth</key>
- <integer>360</integer>
- <key>viewHeight</key>
- <integer>640</integer>
- </dict>
- </plist>
MainLayer.ccbx 场景设计 :一切都是可见即可得,如下图
- 工程目录结构
- 你可以添加精灵,层,节点,字体,菜单,粒子等
- 通过拖动摆放位置,也可以选中精灵后右击,操作复制,剪切,移动等操作
- 整个场景的结构图
- 在4结构图里选中一个元素,会列出对应的参数,可以通过修改参数控制精灵
- 不仅可以视觉直观操作,也可以通过xml代码控制,读者可以点击试一下,这里我就不贴图了;
- 在4中右击,可以操作元素
注意:在4 区域里点击Document , jsController是MainLayer,以后每次新建一个ccbx,一定要对应jsController,否则无效控制;可以选择不同的分辨率(resolution),笔者选择了default 即是width*height=720*1280
MainLayer.js 代码编写,本工具不仅支持调试,也支持代码提示。不过必须先设置一下,如下图,先点击工程结构设置按钮,打开,选择javascript包,因为本工具是基于cocos2dx-html5 所以读者必须先下载 cocos2dx-html5,然后选择该包的位置添加完成。为了让cocos2dx-html5生效,必须关闭idea重启
然后打开MainLayer.js, 右击,选择 Use Javascript Library----cocos2d-html5-v2.1.4.min , ok完成。然后ctrl+鼠标单击,可以看到代码的提示,也可以跳转过去;编写过程中也自动提示;
在MainLayer.js,已经有了简单的代码框架:代码很简单无需解释;
- //
- // CleanerScoreScene class
- //
- var MainLayer = function () {
- cc.log("MainLayer")
- };
- MainLayer.prototype.onDidLoadFromCCB = function () {
- if (sys.platform == 'browser') {
- this.onEnter();
- }
- else {
- this.rootNode.onEnter = function () {
- this.controller.onEnter();
- };
- }
- this.rootNode.onExit = function () {
- this.controller.onExit();
- };
- };
- MainLayer.prototype.onEnter = function () {
- }
- MainLayer.prototype.onUpdate = function () {
- }
- MainLayer.prototype.onExitClicked = function () {
- cc.log("onExitClicked");
- }
- MainLayer.prototype.onExit = function () {
- cc.log("onExit");
- }
下面我来写一个例子,首先场景背景更换成有颜色的,一进入界面让图片不停的缩放,点击下面小图片,图片动画停止,代码如下:
- //
- // CleanerScoreScene class
- //
- var MainLayer = function () {
- cc.log("MainLayer")
- this.cocos2d = this.cocos2d || {};
- };
- MainLayer.prototype.onDidLoadFromCCB = function () {
- if (sys.platform == 'browser') {
- this.onEnter();
- }
- else {
- this.rootNode.onEnter = function () {
- this.controller.onEnter();
- };
- }
- this.rootNode.onExit = function () {
- this.controller.onExit();
- };
- };
- MainLayer.prototype.onEnter = function () { //循环播放动画
- var action = cc.Sequence.create(cc.ScaleTo.create(1, 0.6), cc.ScaleTo.create(1, 1));
- this.cocos2d.runAction(cc.RepeatForever.create(action));
- }
- MainLayer.prototype.onUpdate = function () {
- }
- MainLayer.prototype.onExitClicked = function () {
- cc.log("onExitClicked");
- this.cocos2d.stopAllActions();
- }
- MainLayer.prototype.onExit = function () {
- cc.log("onExit");
- }
为什么onExitClicked会有效,因为在ccbx设置过,如下图;
——————————————————————————————————————————————————————————————————
运行效果图 一切ok
hello代码下载地址:http://www.kuaipan.cn/file/id_25348935635744347.htm
下一篇文章 我会介绍cocos2d-x editor的其他特性 笔者(李元友)
资料来源:cocos2d-x editor
ps 楼下问题反馈:运行的时候要编辑edit configurations,新建一个Coco2dx-JS的配置,自己命名。可参考 二 手游开发神器 cocos2d-x editor工具下载和安装配置
ps 楼下问题反馈:TypeError: this.cocos2d.runAction is not a function,请确认图片精灵var=cocos2d target=doc:如下图
相关推荐
《Cocos2d-x 3.x游戏开发实战》是一本深度探讨Cocos2d-x 3.x框架的游戏开发书籍,适合对游戏编程有兴趣的开发者学习。Cocos2d-x 是一个开源的、跨平台的2D游戏开发框架,广泛应用于iOS、Android、Windows等多平台的...
资源名称:Cocos2d-x实战:JS卷——Cocos2d-JS开发内容简介:本书是介绍Cocos2d-x游戏编程和开发技术书籍,介绍了使用Cocos2d-JS中核心类、瓦片地图、物理引擎、音乐音效、数据持久化、网络通信、性能优化、多平台...
资源名称:大富翁手机游戏开发实战基于Cocos2d-x3.2引擎内容简介:李德国编著的《大富翁手机游戏开发实战(基于 Cocos2d-x3.2引擎)》使用Cocos2d-x游戏引擎技术,带领读者一步一步从零开始进行大富翁移动游戏的开发...
精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发 精通COCOS2D-X游戏开发
1. Cocos2d-x:是一个开源的游戏开发框架,它主要用于开发跨平台的游戏和应用程序,支持iOS、Android、Windows、Mac等多个平台。它允许开发者使用一套代码,就可以在不同的操作系统上部署应用程序。 2. 实战++JS卷...
cocos2d-x 是一个开源的游戏开发框架,以其强大的功能和跨平台性深受开发者喜爱。这个压缩包“cocos2d-x-cocos2d-x-2.2.2.zip”包含了cocos2d-x 的2.2.2版本,该版本是cocos2d-x发展中的一个重要里程碑,它提供了...
Cocos2d-x是全球范围内广泛采用的游戏开发框架,尤其适用于2D游戏的制作,而Cocos2d-JS则是其JavaScript接口,它允许开发者使用JavaScript语言进行游戏逻辑的编写,极大地提高了开发效率和跨平台兼容性。 Cocos2d-x...
《Cocos2d-x实战:C++卷(2版)源代码》这本书是关于使用Cocos2d-x游戏引擎进行游戏开发的专业指南。Cocos2d-x是一个开源的、跨平台的游戏开发框架,广泛应用于iOS、Android、Windows等多个操作系统。本书以C++语言...
Cocos2d-x是一个开源的、跨平台的2D游戏开发框架,广泛应用于iOS、Android、Windows等多个操作系统。本书以C++语言为主要编程工具,详细介绍了如何利用Cocos2d-x进行游戏开发。 首先,Cocos2d-x的基础知识是必须...
本文将详细介绍如何在 Windows 环境下使用 Visual Studio 2010 配置 Cocos2d-x 游戏引擎。Cocos2d-x 是一个跨平台的游戏引擎,可以在多种平台上运行,包括 Windows、Mac OS X、iOS、Android 等。 一、下载和安装 ...
cocos2d-x 是一个开源的游戏开发框架,使用 C++ 语言编写,支持多平台发布,包括 iOS、Android、Windows、macOS、Linux 和 Web。cocos2d-x v3.16 是该框架的一个版本号,本文档主要介绍了该版本的安装流程以及环境...
Cocos2d-x是一个开源的游戏开发框架,广泛用于2D游戏、实时渲染应用程序和其他互动内容的制作。这个压缩包“cocos2d-x-3.1.zip”包含了Cocos2d-x框架的3.1版本,这是一个经典且相对旧的版本,可能对于那些寻找历史...
cocos2d-x是一个开源的游戏开发框架,它基于cocos2d-x,用于创建2D游戏、演示程序和其他图形/交互式应用程序。cocos2d-x是用C++编写的,但同时也支持Lua和JavaScript作为脚本语言,使得开发者可以根据自己的喜好选择...
cocos2d-x 是一个跨平台的游戏开发框架,它基于C++,同时提供了Lua和JavaScript的绑定,让开发者可以方便地在多种操作系统上创建2D游戏、演示程序和其他图形交互应用。这个“cocos2d-x-3.8.zip”压缩包包含的是cocos...
Cocos2d-x是一个广泛使用的开源游戏开发框架,它基于C++,同时支持Lua和JavaScript等多种脚本语言,为开发者提供了高效、跨平台的游戏开发解决方案。在3.13.1版本中,Cocos2d-x对Spine动画引擎的集成进行了更新,这...
《cocos2d-x 动画工具 Flash2Cocos2d-x 1.3:将Flash创意带入移动游戏开发》 在移动游戏开发领域,cocos2d-x是一款广泛使用的开源游戏引擎,以其高效、跨平台的特性深受开发者喜爱。而Flash2Cocos2d-x则是一个专为...
《Cocos2D-X游戏开发技术精解》详细介绍如何使用Cocos2D-X引擎开发自己的移动平台游戏。全书共15章,主要内容包括:Cocos2D-X引擎简介;如 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
《cocos2d-x手机游戏开发》一书深入浅出地介绍了如何利用cocos2d-x框架进行Android游戏的开发。cocos2d-x是一款跨平台的2D游戏开发框架,广泛应用于iOS、Android以及Windows等多个操作系统。它以其高效、易学、功能...
《cocos2d-x 3.0:游戏开发中的角色移动技术详解》 在游戏开发领域,cocos2d-x是一款广泛使用的开源2D游戏引擎,尤其在移动平台上的应用非常广泛。cocos2d-x 3.0版本带来了许多性能优化和新特性,使得开发者能够更...
本文将深入探讨如何利用cocos2d-x开发一款跑酷游戏,通过分析提供的“runningGame”源码,我们将揭示其核心知识点,帮助初学者快速入门并提升对cocos2d-x的理解。 一、项目结构解析 "runningGame"源码项目通常包含...