一.游戏的准备
1.开始场景
-
设置按钮
-
作用:弹出设置页面,主要是音频的设置
-
素材:需要一张底图
-
绑定方法:响应函数是弹出音频设置页面
-
开始游戏按钮
-
作用:切换到游戏的关卡场景
-
素材:需要一张底图
-
绑定方法:响应函数是切换场景
-
背景图
-
作用:是作为游戏开始场景的背景图
-
素材:需要-张大图.
2.关卡场景
-
需要关卡配置文件
-
关卡选择按钮
-
作用:进入该关卡的游戏场景
-
素材:
-
激活状态的图片
-
禁用状态的图片
-
绑定方法:
-
如果是禁用的关卡按钮,则无效果
-
如果是激活状态的关卡,并且关卡指示箭头处于当前关卡时,直接进入游戏场景
-
位置(布局)
-
使用的是正弦曲线来排列.
-
关卡指示箭头
-
作用:指示当前选中的关卡
-
素材:需要- -张图片
-
返回按钮
-
作用:切换到游戏开始场景。素材:需要- -张图片
3.游戏场景
-
返回按钮
-
作用:返回上一级场景,切换到游戏的关卡场景。
-
素材:需要一张图片
-
成语提示图
-
作用:提示成语的图片,可供玩家猜测答案.。
-
素材:需要游戏关卡信息中的图片
-
成语答案区
-
作用:显示玩家选择而成的成语(答案)。
-
组成:有四个相同的方格组件
-
绑定方法:
-
点击区域没有文字:无响应
-
点击区域有文字:清空该方格,让区域内的文字恢复到选择区.
-
成语文字提示区
-
作用:提示成语的图片,可供玩家猜测答案.
-
素材:需要游戏关卡信息中的图片.
-
成语答案区
-
作用:显示玩家选择而成的成语(答案)。
-
组成:由四个相同的方格组件
-
成语文字提示(选择)区
-
作用:从里面挑选四个文字,组成一个单词.。
-
组成:由二十个相同的方格组件
-
组件中有Label
-
位置:网格布局.
-
。绑定方法:
-
把选择的文字显示在成语答案区空白处
-
隐藏当前点击的方格.
-
需要验证答案区成语是否正确
-
如果正确,弹出正确场景
-
如果错误,无响应
4.正解场景
-
透明的蒙层
-
作用是隔开游戏场景
-
正解的显示区
-
背景图
-
成语解释
-
成语出处
-
下一关按钮
-
作用:开启下一关的游戏场景
-
素材:需要一张图片
-
绑定方法:
-
隐藏正解场景 ■替换下一关卡的游戏内容.
5.设置
-
背景框
-
背景音乐按钮
-
作用:开启或关闭背景音乐。
-
素材:
-
激活状态
-
禁用状态.
-
绑定方法:
-
判断是否是激活状态,如果是,切换到禁用状态,同时停止背景音乐播放
-
判断是否是禁用状态,如果是,切换到激活状态,同时开启背景音乐播放
-
音效按钮
-
作用:开启或关闭交互音效。
-
素材
-
激活状态
-
禁用状态
-
绑定方法
-
判断是否是激活状态,如果是,切换到禁用状态,同时停止音效音乐播放
-
判断是否是禁用状态,如果是,切换到激活状态,同时开启音效音乐
●确定按钮
- 作用:确认上述操作的修改
- 素材:需要一张图片
二.开始构建游戏
1.创建游戏项目
2.添加游戏素材
- 由于我们的素材过多,所以希望保留原来的目录结构
- 所以我们直接在源代码的文件下进行操作把data文件夹拖到源代码resource/assets/目录下
3.添加一些素材到preload组里.
4.解析游戏关卡文件
"answer" :"食言而肥" ,
"img" :" images/174. jpg","word" :"吃胖吞说口人",
"tip" :"比喻言而无信,说话不守信用。",
"content":"明.李开光.水风卧吟楼记:「此予 事而挂客怀,何也?不以食言而肥,
不因苦吟而瘦,试以数语为记,请览而教正之如何?」"}
answewe:答案
img:图片路径
word:混淆文字
tip:正确解释
content:成语出处
5删除Main.ts 下的 createGameScene方法里面的内容
三.游戏开始场景
1.创建SceneBegin组件
-
构建exmI
-
拿到两个按钮,分别绑定方法
class SceneBegin extends eui.Component implements eui.UIComponent { //设置按钮 public btn_setting:eui.Button; //开始按钮 public btn_begin:eui.Button;
//声明单例 private static shared: SceneBegin; public static Shared() :SceneBegin{ if(SceneBegin.shared == null){ SceneBegin.shared = new SceneBegin(); } return SceneBegin.shared; } public constructor() { super(); } protected partAdded(partName:string,instance:any):void { super.partAdded(partName,instance); } protected childrenCreated():void { super.childrenCreated(); this.init(); } // 初始化 private init(){ // 给两个按钮绑定点击方法 this.btn_setting.addEventListener(egret.TouchEvent.TOUCH_TAP,this.setting_tap,this); this.btn_begin.addEventListener(egret.TouchEvent.TOUCH_TAP,this.begin_tap,this); } //点击设置按钮的响式函数 private setting_tap(){ //打开设置页面 console.log('打开设置页面') } private begin_tap(){ //打开游戏页面 console.log('打开游戏页面') //把游戏关卡场景加入 this.parent.addChild(SceneLevels.Shared()); //移除游戏开始场景 this.parent.removeChild(this); }}
四.游戏关卡场景
1.创建SceneLevel组件
- 构建SceneLevels.exmI
2.创建 Levellcon组件
- Levellcon.exmI
3.创建关卡数据管理类levelDataManager.ts|
- 读取并保存所有的关卡数据
- 通过关卡号返回关卡数据
- 存档(游戏的最远进度)
- 取档(游戏的最远进度)
- 需要再定义个变量->用来获取关卡的总数量 (totalLevels)
4.给返回按钮和关卡按钮绑定方法.
5.项目的结构