// 游戏正解的组(页面)
public group_win:eui.Group;
// 下一关按钮
public btn_next:eui.Button;
// 成语解释
public lb_explain:eui.Label;
// 成语出处
public lb_from:eui.Label;
/*
*显示正解答案
*/
private showWin() {
// console.log('答案正确!');
// 让游戏场景的正解场景显示出来
this.group_win.visible = true;
// 获取游戏的关卡信息
var levelData = LevelDataManager.Shared().getLevel(this.levelIndex);
this.lb_from.text = levelData.content;
this.lb_explain.text = levelData.tip;
}
// 初始化
private init() {
// 返回按钮
this.btnBack.addEventListener(
egret.TouchEvent.TOUCH_TAP,
this.back_tap,
this
);
// 下一关按钮
this.btn_next.addEventListener(
egret.TouchEvent.TOUCH_TAP,
this.next_tap,
this
);
}
/**
*下一关按钮的响应函数
*/
private next_tap() {
// 先把游戏正解场景隐藏起来
this.group_win.visible = false;
// 重新初始化游戏场景
this.initLevel(this.levelIndex + 1);
}
/**
* 记录玩家过关的最远关卡,并且调整箭头指示的位置
* */
public SetMileStoneLevel(level: number) {
// 拿到过关的关卡按钮
var icon = this.levelIcon[level - 1];
// 设置该关卡为激活状态
icon.enabled = true;
// 设置指示箭头到该关卡上
this.img_arrow.x = icon.x + icon.width/2;
this.img_arrow.y = icon.y;
// 记录最远关卡
if(level > LevelDataManager.Shared().MileStone) {
LevelDataManager.Shared().MileStone = level;
}
}
/**
* 下一关按钮的响应函数
* */
private next_tap() {
// 先把游戏正解场景隐藏起来
this.group_win.visible = false;
// 重新初始化游戏场景
this.initLevel(this.levelIndex + 1);
// 记录最远关卡
SceneLevel.Shared().SetMileStoneLevel(this.levelIndex + 1);
}
// 声明单例
private static shared: GameSetting;
public static Shared(): GameSetting{
if(GameSetting.shared == null) {
GameSetting.shared = new GameSetting();
}
return GameSetting.shared;
}
// 确定按钮
public btn_agree:eui.Button;
// 音乐按钮
public btn_music:eui.Button;
// 音乐静音显示
public img_music_disable:eui.Image;
// 音效按钮
public btn_sound:eui.Button;
// 音效静音显示
public img_sound_disable:eui.Image;
/**
* 初始化
* */
private init() {
// 确定按钮的绑定方法
this.btn_agree.addEventListener(
egret.TouchEvent.TOUCH_TAP,
this.agree_tap,
this
);
// 音乐按钮的绑定方法
this.btn_music.addEventListener(
egret.TouchEvent.TOUCH_TAP,
this.music_tap,
this
);
// 音效按钮的绑定方法
this.btn_sound.addEventListener(
egret.TouchEvent.TOUCH_TAP,
this.sound_tap,
this
);
}
/**
* 确定按钮的响应函数
* */
private agree_tap() {
console.log("确定");
}
/**
* 确定按钮的响应函数
*/
private music_tap() {
console.log("music");
}
/**
* 确定按钮的响应函数
*/
private sound_tap() {
console.log("sound");
}
/**
* 点按设置按钮的响应函数
* */
private settingTap() {
// 打开设置界面
// console.log("打开设置界面");
this.addChild(GameSetting.Shared());
}
// 声明单例
private static shared: SoundManager;
public static Shared(): SoundManager {
if(SoundManager.shared == null) {
SoundManager.shared = new SoundManager();
}
return SoundManager.shared;
}
// 点击声音
private click_sound: egret.Sound;
// 点击字块的声音
private word_sound: egret.Sound;
// 胜利的声音
private right_sound: egret.Sound;
// 错误的音频
private wrong_sound: egret.Sound;
// 背景音乐
private bgm_sound: egret.Sound;
// 保存背景音乐静音的音轨
private bgm_channel: egret.SoundChannel;
public constructor() {
// 加载所有的音频文件
// this.click_sound = new egret.Sound();
// this.click_sound.load(url); t
his.click_sound = RES.getRes('buttonclick_mp3');
this.bgm_sound = RES.getRes('Music_mp3');
this.right_sound = RES.getRes('right_mp3');
this.wrong_sound = RES.getRes('wrong_mp3');
this.word_sound = RES.getRes('type_word_mp3');
}
/**
* 播放背景音乐
* */
public playBgm() {
if(this.isMusic) {
this.bgm_channel = this.bgm_sound.play(0,0);
}
}
/**
* 停止背景音乐
*/
public stopBgm() {
if(this.bgm_channel != null) {
this.bgm_channel.stop();
}
}
/**
* 音乐是否播放,保存设置
*/
public set isMusic(val) {
if(!val) {
// 0 为不需要播放
egret.localStorage.setItem('isMusic','0');
}else {
// 1 为需要播放
egret.localStorage.setItem('isMusic','1');
}
}
/**
* 获取音频是否播放
* */
public get isMusic() {
var status = egret.localStorage.getItem('isMusic');
if(status == null || status == '') {
return true;
}else {
return status == '1';
}
}
/**
* 点按设置按钮的响应函数
* */
private settingTap() {
SoundManager.Shared().playClick();
this.addChild(GameSetting.Shared());
}
/**
* 确定按钮的响应函数
* */
private agree_tap() {
// console.log("确定");
// 隐藏设置场景
this.parent.removeChild(this);
// 播放一个点击的音效
SoundManager.Shared().playClick(); }
/**
* 背景音乐按钮的响应函数
* */
private music_tap() {
// console.log("music");
SoundManager.Shared().playClick();
SoundManager.Shared().isMusic = !SoundManager.Shared().isMusic;
//改变状态(如果是可播放状态,则设置为禁用状态)
this.update_button_stage(); }
/**
* 确定按钮的响应函数
* */
private sound_tap() {
// console.log("sound");
SoundManager.Shared().playClick();
SoundManager.Shared().isSound = !SoundManager.Shared().isSound;
this.update_button_stage();
}
/**
* 修改音效 / 音效的状态
* */
private update_button_stage() {
this.img_music_disable.visible = !SoundManager.Shared().isMusic;
this.img_sound_disable.visible = !SoundManager.Shared().isSound;
}
/**
* 初始化
* */
private init() {
……
// 初始化音乐 / 音效的显示
this.update_button_stage();
}
// 初始化
private init() {
// 给两个按钮绑定点击方法
this.btnSetting.addEventListener(
egret.TouchEvent.TOUCH_TAP,
this.settingTap,
this
);
this.btnBegin.addEventListener(
egret.TouchEvent.TOUCH_TAP,
this.beginTap,
this
);
// 设置游戏背景音乐默认是可播放
SoundManager.Shared().isMusic = true;
}
/**
* 音乐是否播放,保存设置
* */
public set isMusic(val) {
if(!val) {
// 0 为不需要播放
egret.localStorage.setItem('isMusic','0');
this.stopBgm(); }else {
// 1 为需要播放
egret.localStorage.setItem('isMusic','1');
this.playBgm();
}
}
解决如果用户玩到 100 关的时候,不需要每次进入游戏手动往上滑。
// 滚动视图默认出现在最底部
this.group_levels.scrollV = group.height - this.height;
// 拿到最远关卡,超过 20 关就是超过一个屏幕的高度
if(mileStone > 20) {
this.group_levels.scrollV = group.height - mileStone*spanY - this.img_arrow.height;
}
【源码获取方式】