Egret 小游戏实战教程(跳一跳)
游戏思路
一般游戏开发可大体分为以下四个步骤,这里主要针对 H5 小游戏:
第一步:
准备资源
这部分没什么好说的,准备好素材就是了,一般就是图片和音频
当前跳一跳项目中用到的素材有(如下图所示):
要注意的一点是:这里的方块阴影只是假装有个 3D 的效果,其实就是个图片
写代码的时候,方块图片的锚点不应该是图片的中心点,而应该是图中的方块中心
第二步:
写游戏场景
什么是场景呢,其实就是 UI 界面
一般我们可以把游戏分成(至少)3 个场景,分别是开始场景、游戏场景和结束场景(如下图所示)
然后利用 Egret 的 EUI 功能(可视化布局),我们可以很容易的创建静态场景(要有场景的意识),不用写一句代码,界面就有了,真的是好容易,谁用谁知道!
提示:静态场景就是那些不会动的东西;会动的东西或重复的物体我们一般在后续会写成一个类或者方法
第三步:
写游戏逻辑
这部分就是游戏的核心了,人与人之间的差别也就在这
通常来说首尾两个场景交互较少,只要在按钮上添加几个事件监听就好了,而游戏场景中的逻辑才是我们真正要施展才华(写 bug)的地方
第四步:
多玩多调试
这步也不用多说,就是多点点,各种骚操作,多管齐下,bug 总能与你不期而遇,擦出不离不弃的火花
新建项目
话不多说,让我们开始策马奔腾吧!
1、新建一个名叫 jump 的项目并用 Egret Wing 3 编辑器打开
2、在 resource/assets 目录下新建一个 data 文件夹,并把资源放入其中(包括图片和音频)
3、打开 src 目录下的 Main.ts 文件,删除 createGameScene 函数里面的内容
如果你在此时运行的话,将看不到任何效果,因为 createGameScene 函数里面没有做任何操作
写静态场景
这步我们将通过 EUI 来完成,不需要写一行代码,贼 TM 爽
首先在 src 目录下新建一个名叫 scene 的文件夹
右击该文件夹新建一个 EUI 组件,取名叫 SceneBegin,并修改默认路径(它会自己创建一个目录),具体操作如下图所示:
从上图中我们可以看到,新建一个 EUI 组件后,会生成两个文件
一个是 exml 文件,一个是 ts 文件,二者是一一对应的
其中 exml 用来写 UI 界面,ts 用来写对应页面的逻辑
所以这一步我们只会动到 exml 文件,打开 SceneBegin.exml,点击中间透明区域,在右侧设置其宽高为 640 ? ?1136,具体操作如下图:
点击左侧界面的资源面板(图标里面有个 E 的),从中选取背景并拖入到界面中
单击右侧面板中的快捷约束的最后一个按钮,则可使背景铺满整个界面,具体操作如下图:
点击左侧界面的组件面板(图标有点像拼图的),从中选取 Button 组件,加上 ID 名并替换组件皮肤(也就是按钮背景啦),具体操作如下图:
这样一来我们就将开始场景写好了,怎么样,是不是很 easy 呢?
接下来只要用同样的方式去写游戏场景和结束场景即可
由于我们这里的结束界面是以弹层的形式覆盖在游戏界面上的,所以二者是写在一起的
ok,话不多说,右击 src 目录下的 scene 文件夹,新建另一个 EUI 组件,取名叫 SceneGame
因为两个场景是在写一起的,所以我们需要对其进行分组(Group),一个 Group 写游戏场景,一个 Group 写结束场景
那怎么分组呢,也很简单,找到编辑器左下角的布局面板,将 Group 拖入到界面中,并自适应全屏即可,如下图:
再然后依葫芦画瓢即可,具体 exml 文件效果图如下:
现在打开 src 目录下的 Main.ts 文件
并在 createGameScene 函数中把开始场景添加到舞台中,然后运行一下你就能看到开始界面了,具体代码如下:
protected createGameScene(): void { this.addChild(new SceneBegin()); }
小结
至此,我们的静态场景就全部写完了,
哦不,我们并没有写代码,仅仅是贴图和贴文字而已。
当中的精髓就在于拖,把左侧面板的资源或控件熟练地拖入到界面中,
然后在右侧面板设置其属性(宽高或 xy 值等),只要你能熟练地移动鼠标,神马静态场景都不在话下。
跳一跳源码地址:GitHub
原文:尤水就下
*** | 以上内容仅为学习参考、学习笔记使用 | ***