Commit 50583886 authored by 范雪寒's avatar 范雪寒

feat: global变量问题

parent d51018ee
...@@ -13,6 +13,7 @@ var game = cc.Class({ ...@@ -13,6 +13,7 @@ var game = cc.Class({
}, },
ctor: function () { ctor: function () {
initGlobal_NGT_02();
game.inst = this; game.inst = this;
g.game = game; g.game = game;
}, },
......
// 全局环境预声明 // 全局环境预声明
window.g = window.g || {}; // 全局 function initGlobal_NGT_02() {
console.log('window.g init');
console.log('window.g init'); window.g = {};
\ No newline at end of file initDataMgr_NGT_02();
initEventMgr_NGT_02();
initStorageMgr_NGT_02();
initResMgr_NGT_02();
initSndMgr_NGT_02();
}
\ No newline at end of file
This diff is collapsed.
// 事件汞 function initEventMgr_NGT_02() {
let eventList = {}; // 响应列表(元素结构:eventName,[[target:cb]]) // 事件汞
g.event_mgr = { let eventList = {}; // 响应列表(元素结构:eventName,[[target:cb]])
// 注册事件-响应 入参:事件名、响应、目标名 g.event_mgr = {
reg: function (eventName, cb, target) { // 注册事件-响应 入参:事件名、响应、目标名
var event = eventList[eventName]; reg: function (eventName, cb, target) {
if (!event) { var event = eventList[eventName];
event = eventList[eventName] = {}; if (!event) {
} event = eventList[eventName] = {};
event[target] = cb; }
}, event[target] = cb;
// 注销事件-响应 入参:事件名、目标名 },
unReg: function (eventName, target) { // 注销事件-响应 入参:事件名、目标名
var event = eventList[eventName]; unReg: function (eventName, target) {
if (event) { var event = eventList[eventName];
if (event[target]) { if (event) {
event[target] = null; if (event[target]) {
} event[target] = null;
} }
}, }
unRegName: function (eventName) { },
eventList[eventName] = {}; unRegName: function (eventName) {
}, eventList[eventName] = {};
// 广播事件 入参:事件名、参数 },
send: function (eventName, params) { // 广播事件 入参:事件名、参数
var event = eventList[eventName]; send: function (eventName, params) {
if (event) { var event = eventList[eventName];
for (var target in event) { if (event) {
var cb = event[target]; for (var target in event) {
if (cb) { var cb = event[target];
cb(params); if (cb) {
} cb(params);
} }
} }
}, }
getReglist: function () { },
return eventList; getReglist: function () {
} return eventList;
}; },
\ No newline at end of file };
}
// localStorage封装 function initStorageMgr_NGT_02() {
g.local_storage = { // localStorage封装
g.local_storage = {
// 背景音乐音量 // 背景音乐音量
getMusicVolume: function () { getMusicVolume: function () {
var vol = cc.sys.localStorage.getItem("music"); var vol = cc.sys.localStorage.getItem("music");
return vol; return vol;
}, },
setMusicVolume: function (vol) { setMusicVolume: function (vol) {
cc.sys.localStorage.setItem('music', vol) cc.sys.localStorage.setItem("music", vol);
}, },
// 音效音量 // 音效音量
getEffectsVolume: function () { getEffectsVolume: function () {
var vol = cc.sys.localStorage.getItem("effect"); var vol = cc.sys.localStorage.getItem("effect");
return vol; return vol;
}, },
setEffectsVolume: function (vol) { setEffectsVolume: function (vol) {
cc.sys.localStorage.setItem('effect', vol); cc.sys.localStorage.setItem("effect", vol);
}, },
}; };
}
/** function initResMgr_NGT_02() {
* 资源管理器 /**
*/ * 资源管理器
g.res_mgr = { */
//获得表数据数据 g.res_mgr = {
getFormData() { //获得表数据数据
console.log('初始化数据'); getFormData() {
console.log("初始化数据");
if (window && window.courseware) {
window.courseware.getData((res) => {
//存入数据管理器
g.data_mgr.data = res;
//数据处理
g.data_mgr.proGameData();
console.log("获得表单数据:" + res);
});
return;
}
const middleLayer = cc.find('middleLayer'); if (window && window.courseware) {
if (middleLayer) { window.courseware.getData((res) => {
const middleLayerComponent = middleLayer.getComponent('middleLayer'); //存入数据管理器
middleLayerComponent.getData((res) => { g.data_mgr.data = res;
//存入数据管理器 //数据处理
g.data_mgr.data = res; g.data_mgr.proGameData();
//数据处理 console.log("获得表单数据:" + res);
g.data_mgr.proGameData(); });
console.log("获得表单数据:" + res); return;
}); }
return;
}
//console.error('没有查找到courseware.getData方法', error); const middleLayer = cc.find("middleLayer");
//获得默认数据 if (middleLayer) {
g.data_mgr.data = g.data_mgr.getDefaultData(); const middleLayerComponent = middleLayer.getComponent("middleLayer");
//数据处理 middleLayerComponent.getData((res) => {
g.data_mgr.proGameData(); //存入数据管理器
}, g.data_mgr.data = res;
//数据处理
g.data_mgr.proGameData();
console.log("获得表单数据:" + res);
});
return;
}
//得到图片资源 //console.error('没有查找到courseware.getData方法', error);
getSpriteFrimeByUrl(url, cb) { //获得默认数据
cc.assetManager.loadRemote(url, cc.SpriteFrame, (e, sp) => { g.data_mgr.data = g.data_mgr.getDefaultData();
const spriteFrame = new cc.SpriteFrame(sp) //数据处理
cb && cb(spriteFrame); g.data_mgr.proGameData();
}); },
},
playAudioByUrl(audio_url, cb) { //得到图片资源
if (audio_url) { getSpriteFrimeByUrl(url, cb) {
cc.assetManager.loadRemote(audio_url, (err, audioClip) => { cc.assetManager.loadRemote(url, cc.SpriteFrame, (e, sp) => {
cb && cb(audioClip); const spriteFrame = new cc.SpriteFrame(sp);
}); cb && cb(spriteFrame);
} });
}, },
//加载龙骨 playAudioByUrl(audio_url, cb) {
loadSpine(animationDisplay, Info) { if (audio_url) {
if (Info.type == 'Image') { cc.assetManager.loadRemote(audio_url, (err, audioClip) => {
return; cb && cb(audioClip);
} });
cc.assetManager.loadAny([{ url: Info.tex_json, ext: '.txt' }, { url: Info.ske_json, ext: '.txt' }], (error, assets) => { }
if (error) { },
console.log(error)
}
else {
cc.assetManager.loadRemote(Info.tex_png, (error, texture) => {
if (error) {
console.log(error)
}
else {
var atlas = new dragonBones.DragonBonesAtlasAsset();
atlas._uuid = Info.tex_json;
atlas.atlasJson = assets[0];
atlas.texture = texture;
var asset = new dragonBones.DragonBonesAsset(); //加载龙骨
asset._uuid = Info.ske_json; loadSpine(animationDisplay, Info) {
asset.dragonBonesJson = assets[1]; if (Info.type == "Image") {
return;
}
cc.assetManager.loadAny(
[
{ url: Info.tex_json, ext: ".txt" },
{ url: Info.ske_json, ext: ".txt" },
],
(error, assets) => {
if (error) {
console.log(error);
} else {
cc.assetManager.loadRemote(Info.tex_png, (error, texture) => {
if (error) {
console.log(error);
} else {
var atlas = new dragonBones.DragonBonesAtlasAsset();
atlas._uuid = Info.tex_json;
atlas.atlasJson = assets[0];
atlas.texture = texture;
animationDisplay.dragonAtlasAsset = atlas; var asset = new dragonBones.DragonBonesAsset();
animationDisplay.dragonAsset = asset; asset._uuid = Info.ske_json;
let data = asset._dragonBonesJsonData.armature[0]; asset.dragonBonesJson = assets[1];
if (!data) {
return;
}
animationDisplay.armatureName = data.name;
g.data_mgr.dragonName = data.animation[0].name;
animationDisplay.node.active = true; animationDisplay.dragonAtlasAsset = atlas;
} animationDisplay.dragonAsset = asset;
}); let data = asset._dragonBonesJsonData.armature[0];
} if (!data) {
}); return;
}, }
} animationDisplay.armatureName = data.name;
\ No newline at end of file g.data_mgr.dragonName = data.animation[0].name;
animationDisplay.node.active = true;
}
});
}
}
);
},
};
}
// 声音管理器 function initSndMgr_NGT_02() {
g.snd_mgr = { // 声音管理器
bgmId: -1, // 背景音乐的音频ID g.snd_mgr = {
effIds: [], // 音效的音频ID列表(由cc.audioEngine保证音频ID不重复) bgmId: -1, // 背景音乐的音频ID
bgmVol: 1, // 背景音乐音量 effIds: [], // 音效的音频ID列表(由cc.audioEngine保证音频ID不重复)
neweffId: null, //保存上一个音效ID bgmVol: 1, // 背景音乐音量
effVol: 1, // 音效音量 neweffId: null, //保存上一个音效ID
pausebgVol: 1, effVol: 1, // 音效音量
pauseeffVol: 1, pausebgVol: 1,
sndNativeUrls: {}, pauseeffVol: 1,
newsnd: null, sndNativeUrls: {},
init: function () { newsnd: null,
var local_storage = g.local_storage; init: function () {
var music_vol = local_storage.getMusicVolume(); var local_storage = g.local_storage;
var effect_vol = local_storage.getEffectsVolume(); var music_vol = local_storage.getMusicVolume();
music_vol != undefined && music_vol + "" != "" && this.setMusicVolume(music_vol); var effect_vol = local_storage.getEffectsVolume();
effect_vol != undefined && effect_vol + "" != "" && this.setEffectsVolume(effect_vol); music_vol != undefined &&
}, music_vol + "" != "" &&
delAudId: function (id) { this.setMusicVolume(music_vol);
if (id == this.bgmId) { effect_vol != undefined &&
this.bgmId = -1; effect_vol + "" != "" &&
return; this.setEffectsVolume(effect_vol);
} },
for (var i = 0; i < this.effIds.length; ++i) { delAudId: function (id) {
if (this.effIds[i] == id) { if (id == this.bgmId) {
this.effIds.splice(i, 1); this.bgmId = -1;
return; return;
} }
} for (var i = 0; i < this.effIds.length; ++i) {
}, if (this.effIds[i] == id) {
playMusic: function (snd, _loop, finishCB) { this.effIds.splice(i, 1);
if (!snd) return; return;
this.newsnd = snd; }
var loop = _loop ? false : true; // 除非指定为false,否则默认为true }
// if (g.configs.platform == "vo") { },
// this.bgmId = cc.audioEngine.play(snd, loop); playMusic: function (snd, _loop, finishCB) {
// return; if (!snd) return;
// } this.newsnd = snd;
cc.audioEngine.stop() var loop = _loop ? false : true; // 除非指定为false,否则默认为true
this.bgmId = cc.audioEngine.playMusic(snd, loop); // if (g.configs.platform == "vo") {
// 播放完成回调 // this.bgmId = cc.audioEngine.play(snd, loop);
if (finishCB) { // return;
cc.audioEngine.setFinishCallback(this.bgmId, function () { // }
finishCB(); cc.audioEngine.stop();
}); this.bgmId = cc.audioEngine.playMusic(snd, loop);
} // 播放完成回调
}, if (finishCB) {
playEffect: function (snd, finishCB) { cc.audioEngine.setFinishCallback(this.bgmId, function () {
if (!snd || this.effVol == 0) return; finishCB();
var id = cc.audioEngine.playEffect(snd, false); // 音效限定不能重复播放 });
this.playaudioEffect(id, finishCB); }
}, },
//播放音效 playEffect: function (snd, finishCB) {
playaudioEffect: function (id, finishCB) { if (!snd || this.effVol == 0) return;
var self = this; var id = cc.audioEngine.playEffect(snd, false); // 音效限定不能重复播放
this.neweffId = id; this.playaudioEffect(id, finishCB);
this.effIds.push(id); },
// 播放完记得删ID //播放音效
cc.audioEngine.setFinishCallback(id, function () { playaudioEffect: function (id, finishCB) {
self.delAudId(id); var self = this;
finishCB && finishCB(); this.neweffId = id;
}); this.effIds.push(id);
}, // 播放完记得删ID
pauseVolume: function () { cc.audioEngine.setFinishCallback(id, function () {
cc.audioEngine.stopAll(); self.delAudId(id);
}, finishCB && finishCB();
resumeVolume: function () { });
if (this.newsnd != null) { },
cc.audioEngine.playMusic(this.newsnd) pauseVolume: function () {
} cc.audioEngine.stopAll();
}, },
setMusicVolume: function (percent) { resumeVolume: function () {
this.bgmVol = percent; if (this.newsnd != null) {
cc.audioEngine.setMusicVolume(~~percent); cc.audioEngine.playMusic(this.newsnd);
}, }
setEffectsVolume: function (percent) { },
this.effVol = percent; setMusicVolume: function (percent) {
cc.audioEngine.setEffectsVolume(~~percent); this.bgmVol = percent;
cc.audioEngine.setMusicVolume(~~this.bgmVol); cc.audioEngine.setMusicVolume(~~percent);
}, },
}; setEffectsVolume: function (percent) {
\ No newline at end of file this.effVol = percent;
cc.audioEngine.setEffectsVolume(~~percent);
cc.audioEngine.setMusicVolume(~~this.bgmVol);
},
};
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment