在这个教程中,我将会从头开始向你展示如何去建立一个新的 Cosos2d-JS 工程。在开始之前,我先简短地介绍一下 Cocos2d-JS 总体的目录结构。
下面是 Cocos2d-JS 的目录结构:
图片1
目录结构可以被分成4个部分来理解:
当你已经成功地下载和配置好你的 Cocos2d-JS 开发环境之后,去看看 Cocos2d-JS 内置的样本工程是非常好的一个选择。它也是你正确地学习 Cocos2d-JS 中一个非常好的学习资源。
进入目录 Cocos2d-JS/samples/js-tests, 然后通过 cocos 控制台执行测试文件。
1
|
cocos run -p web
|
它将会向你展示全部 Cocos2d-JS 的内置测试工程。 以下是屏幕截图:
图片 2
这些测试工程是你最好的学习资源。它们很好地展示了 Cocos2d-html5 的每个特性。你可以调整这些测试文件,然后在你刷新浏览器后你会立即得到对应的反馈信息。在开始的学习中,通过这种方式学习 Cocos2d-html5 比在开始时就阅读大量的文档更有效。
你也可以在 IOS,android,Mac 上运行这些测试工程文件。
1
|
cocos run -p ios|android|mac
|
这里有一个使用 Cocos2d-JS 完成的完整游戏样本。全部的源代码都是免费和开源的。以下是对这个游戏样本的简单介绍。
这个游戏的名字叫 MoonWarrior。你可以通过 cocos 控制台进入 js-moonwariors的根目录来运行它。
1
|
cocos run -p web|ios|android|mac
|
这是一个纵向的射击游戏。很多有用的游戏技术被应用到这个游戏里面,包括瓦片地图(tiled-map), 动画(animation), 视差背景(parallax background)等等。 这里是屏幕截图,你可以在源代码中获得更多的信息。
图片 3
最后,我们开始教程最终也是最重要的一部分。 我不会真的创建一个 "Hello World" 工程。我将会把 跑酷(Parkour)游戏作为一个例子。在以后,所有的这些精品教程都将会围绕怎么去完成一个在Cocos2d-JS 下的的跑酷(Parkour)游戏这个主题。
你还可以忍受等待吗?来,让我们马上开始!
正如之前所说,我们可以使用一个指定的名字来创建一个新的工程。进入你的工作台(workspace),使用 cocos 控制台去创建Parkour 游戏。
1
|
cocos
new
Parkour -l js
|
现在运行你的 WebStorm ,打开 Parkour 的目录。现在这个工程的结构是这个样子:
图片 4
在 WebStorm 中右击 index.html ,选择Debug 'index.html'。它将会自动打开你的 Chrome 浏览器,然后你就成功地创建了一个新的工程。恭喜你!当前浏览器的地址是:
1
|
http:
//localhost:63342/Parkour/index.html
|
这是一张经典的 Hello World 截图:
图片 5
虽然 template 带给我们这么多礼物, 但是我们甚至对它一无所知。
这个模板工程的主入口在哪里?这些文件是如何组织的?每个文件又完成什么工作?在这节中,我将会帮助你解答这些问题。
首先, 我们一起查看在图片4中全部的文件和目录结构: 在图片4, 我们可以看到:
res 目录.它包含了工程中所有被需要的资源文件。现在它仅仅包含一些图片样本。 但是如果你想要增加一些游戏的元素或者一些极好的游戏音乐,你应该将它们放在这个文件夹下并给为每个文件取一个合适的名字。
src 文件夹. 它包含你真实游戏的所有逻辑代码。如果这里有成千上百个 javascript 源文件,你最好将它们用子文件夹分成许多小部分。现在,我们的模板工程拥有2个 javascript 源文件夹。 app.js 包含我们模板的第一个场景代码。在resource.js 定义了许多资源的全局变量。
index.html 文件是 HTML5 基于web应用程序的入口点。它是一种 HTML5 兼容的格式。它定义了许多元数据,例如设置视角和全屏参数等。
project.json 文件是我们工程的配置文件。请参考网站project.json获得更多详情 。
好了, 你已经知道了这些文件和文件夹是什么。现在,该是我们理解这些源代码和执行路径的时候了。
知道一个工程的执行路径是非常重要的。
这个工程被装载进index.html。然后它执行 frameworks/Cocos2d-html5/CCBoot.js。它将会尝试从 project.json 文件中装载工程的设置信息。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
{
"project_type"
:
"javascript"
,
"debugMode"
: 1,
"showFPS"
:
true
,
"frameRate"
: 60,
"id"
:
"gameCanvas"
,
"renderMode"
: 0,
"engineDir"
:
"frameworks/cocos2d-html5"
,
"modules"
: [
"cocos2d"
],
"jsList"
: [
"src/resource.js"
,
"src/app.js"
]
}
|
查看这个代码片段,这里有一个叫做engineDir的对象属性,它能够决定下一个程序的执行路径。在默认的情况下,我们可以修改这个 engineDir 的内容。
main.js 会在装载完frameworks/Cocos2d-html5/CCBoot.js 这个文件之后开始装载。它将会初始化配置和装载所有的在 modules 和 jsList文件上被指定的 JavaScript 文件。阅读源代码比阅读我的纯文字描述将会更清晰地向你展示这个过程。
正如我们前几节提到过的,在我们真正开始写代码之前,我们一起来对项目做一点小改动来热热身吧!
这一节可能会有一点琐碎。我们可以很容易地实现这个效果,通过在project.json文件修改把showFPS属性为false。
以下是相关的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
{
"project_type"
:
"javascript"
,
"debugMode"
: 1,
"showFPS"
:
false
,
"frameRate"
: 60,
"id"
:
"gameCanvas"
,
"renderMode"
: 0,
"engineDir"
:
"frameworks/Cocos2d-html5"
,
"modules"
: [
"cocos2d"
],
"jsList"
: [
"src/resource.js"
,
"src/app.js"
]
}
|
通过修改这些对象的属性,我们可以对这个项目做许多小改动。以下,我会向你介绍每个属性的作用。
Cocos2d-JS 把 web browser 作为一个全屏游戏的画布。我们不需要手动地去匹配这个大小,我们仅仅需要去关注设计的分辨率大小。为了使我们的游戏流畅地在 IOS 和 Android 平台使用 javascript binding 技术运行,我们将会修改分辨率为 480*320。打开 main.js 文件,在函数cc.game.onStart里修改分辨率大小为480, 320。
你也可以调整分辨率策略为SHOW_ALL:
1
|
cc.view.setDesignResolutionSize(480, 320, cc.ResolutionPolicy.SHOW_ALL);
|
如果你对我们为什么需要做这些工作而感到好奇,请参阅 Cocos2d-HTML 2.2.2的屏幕适配方案 获得更多详情。
在这个教程中,我们谈到了整个工程的目录结构以及内置的测试工程和 Cocos2d-JS 的游戏样本。我们也根据 Cocos2d-JS 提供的模板创建了自己的第一个工程。在下一个部分里,我们将会尝试分析这些文件以及模板中的代码结构。
在接下来的教程中,我将会告诉你如何在你的工程里去创建一个游戏菜单场景。我们将会使用 Cocos2d-JS 做更多的编码工作。