diff --git a/public/恢复_鸟妈妈回家_HTML5 Canvas.fla b/public/恢复_鸟妈妈回家_HTML5 Canvas.fla deleted file mode 100644 index e8e415a..0000000 Binary files a/public/恢复_鸟妈妈回家_HTML5 Canvas.fla and /dev/null differ diff --git a/src/classes/again.js b/src/classes/again.js index 5c6954f..44357da 100644 --- a/src/classes/again.js +++ b/src/classes/again.js @@ -9,11 +9,16 @@ function Again() { this.btnAgain = null; } -Again.of = function () { - const instance = new Again(); - instance.init(); - return instance; -}; +Again.of = (function () { + let instance = null; + return function () { + if (!instance) { + instance = new Again(); + } + instance.init(); + return instance; + }; +})(); // 初始化 Again.prototype.init = function () { diff --git a/src/classes/back.js b/src/classes/back.js index 3a7bf07..8b0959e 100644 --- a/src/classes/back.js +++ b/src/classes/back.js @@ -4,11 +4,16 @@ function Back() { this.back = null; } -Back.of = function () { - const instance = new Back(); - instance.init(); - return instance; -}; +Back.of = (function () { + let instance = null; + return function () { + if (!instance) { + instance = new Back(); + } + instance.init(); + return instance; + }; +})(); Back.prototype.init = function () { const target = new this.lib.btnBack(); diff --git a/src/classes/count.js b/src/classes/count.js index 8533f81..e6db06e 100644 --- a/src/classes/count.js +++ b/src/classes/count.js @@ -29,11 +29,16 @@ function Count(countEndCallback, startTime, defaultCount = config.count || 5) { * @param {number} defaultCount 倒计时时长 * @returns */ -Count.of = function (countEndCallback, startTime = Date.now(), defaultCount) { - const instance = new Count(countEndCallback, startTime, defaultCount); - instance.init(); - return instance; -}; +Count.of = (function () { + let instance = null; + return function (countEndCallback, startTime = Date.now(), defaultCount) { + if (!instance) { + instance = new Count(countEndCallback, startTime, defaultCount); + } + instance.init(); + return instance; + }; +})(); // 初始化方法 Count.prototype.init = function () { diff --git a/src/classes/demo.js b/src/classes/demo.js index 9873908..2798828 100644 --- a/src/classes/demo.js +++ b/src/classes/demo.js @@ -9,11 +9,16 @@ function Demo() { this.stopDemo = null; } -Demo.of = function () { - const instance = new Demo(); - instance.init(); - return instance; -}; +Demo.of = (function () { + let instance = null; + return function () { + if (!instance) { + instance = new Demo(); + } + instance.init(); + return instance; + }; +})(); // 初始化 Demo.prototype.init = function () { diff --git a/src/classes/end.js b/src/classes/end.js index 40ec60b..8bc9e89 100644 --- a/src/classes/end.js +++ b/src/classes/end.js @@ -21,11 +21,16 @@ function End(score) { * @param {number} score 最终得分 * @returns */ -End.of = function (score) { - const instance = new End(score); - instance.init(); - return instance; -}; +End.of = (function () { + let instance = null; + return function () { + if (!instance) { + instance = new End(); + } + instance.init(); + return instance; + }; +})(); // 初始化 End.prototype.init = function () { diff --git a/src/classes/level.js b/src/classes/level.js index 65fc0d5..2306a5f 100644 --- a/src/classes/level.js +++ b/src/classes/level.js @@ -13,11 +13,16 @@ function Level(level = config.level || 1) { * @param {number} level 等级数值 * @returns */ -Level.of = function (level) { - const instance = new Level(level); - instance.init(); - return instance; -}; +Level.of = (function () { + let instance = null; + return function (level) { + if (!instance) { + instance = new Level(level); + } + instance.init(); + return instance; + }; +})(); // 初始化 渲染 // 更新config中的level属性 diff --git a/src/classes/main.js b/src/classes/main.js index 962589c..57c5ac5 100644 --- a/src/classes/main.js +++ b/src/classes/main.js @@ -26,11 +26,16 @@ function Main(endCallback, max) { * @param {function} endCallback 游戏结束的回调函数 * @param {number} max 最多运动次数 */ -Main.of = function (endCallback, max = config.times) { - const instance = new Main(endCallback, max); - instance.init(); - return instance; -}; +Main.of = (function () { + let instance = null; + return function (endCallback, max = config.times) { + if (!instance) { + instance = new Main(endCallback, max); + } + instance.init(); + return instance; + }; +})(); // 初始方法 Main.prototype.init = function () { @@ -67,5 +72,7 @@ Main.prototype.computeScore = function (times, direction = 0) { const directionTarget = config.config.scores.find(item => item.direction === direction); config.currentTimes = times; config.currentScore += directionTarget.score; - sendMessage({ event: 'play', data: { currentTimes: times, currentScore: config.currentScore } }); + if (config.mode === 0) { + sendMessage({ event: 'play', data: { currentTimes: times, currentScore: config.currentScore } }); + } }; diff --git a/src/classes/sound.js b/src/classes/sound.js index 9c61f44..c40575a 100644 --- a/src/classes/sound.js +++ b/src/classes/sound.js @@ -5,19 +5,22 @@ function Sound() { this.music = {}; } -Sound.of = function () { - const instance = new Sound(); - instance.init(); - return instance; -}; +Sound.of = (function () { + let instance = null; + return function () { + if (!instance) { + instance = new Sound(); + } + instance.init(); + return instance; + }; +})(); Sound.prototype.init = function () { createjs.Sound.alternateExtensions = ['mp3']; - console.log('createjs.Sound: ', createjs.Sound); const sounds = [{ src: 'sounds/bgmMusic.mp3', id: 'bgm' }]; const _this = this; createjs.Sound.addEventListener('fileload', function (event) { - console.log('event: ', event); _this.music[event.id] = createjs.Sound.createInstance(event.id); }); createjs.Sound.registerSounds(sounds, './'); diff --git a/src/classes/suspend.js b/src/classes/suspend.js index 4102677..c917edc 100644 --- a/src/classes/suspend.js +++ b/src/classes/suspend.js @@ -9,11 +9,16 @@ function Suspend() { this.suspend = null; } -Suspend.of = function () { - const instance = new Suspend(); - instance.init(); - return instance; -}; +Suspend.of = (function () { + let instance = null; + return function () { + if (!instance) { + instance = new Suspend(); + } + instance.init(); + return instance; + }; +})(); // 初始化 Suspend.prototype.init = function () { diff --git a/src/classes/time.js b/src/classes/time.js index 2cc824c..37dc7a1 100644 --- a/src/classes/time.js +++ b/src/classes/time.js @@ -35,11 +35,16 @@ function Time(endCallback, duration, count) { * @param {number} count 游戏倒计时时长 * @returns */ -Time.of = function (endCallback, duration = config.duration || 60, count = config.count || 5) { - const instance = new Time(endCallback, duration, count); - instance.init(); - return instance; -}; +Time.of = (function () { + let instance = null; + return function (endCallback, duration = config.duration || 60, count = config.count || 5) { + if (!instance) { + instance = new Time(endCallback, duration, count); + } + instance.init(); + return instance; + }; +})(); // 初始化 Time.prototype.init = function () { diff --git a/src/custom.js b/src/custom.js index 0b98002..a745a89 100644 --- a/src/custom.js +++ b/src/custom.js @@ -4,6 +4,7 @@ const config = { total: 100, // 总分 times: 20, // 动作次数 level: 1, // 游戏难度级别 + mode: 1, // 模式 0-> 正常模式 1-> 演示模式 currentScore: 0, // 当前得分 currentTimes: 0, // 当前次数 config: { @@ -45,6 +46,8 @@ function gameOver() { const times = main.times; setTimeout(() => { End.of(config.currentScore || 0); - finishMessage(config.currentScore, times); + if (config.mode === 0) { + finishMessage(config.currentScore, times); + } }, 2000); } diff --git a/src/message.js b/src/message.js index 8154b90..e14df5b 100644 --- a/src/message.js +++ b/src/message.js @@ -33,6 +33,7 @@ window.addEventListener( config.times = game.totalTimes; config.level = game.level; config.config = game.config; + config.mode = game.mode; window.timeInstance.setDuration(game.duration); // 开始倒计时 @@ -72,7 +73,7 @@ window.addEventListener( // config.total = score; // config.times = times; End.of(score || 0); - // window.timeInstance.setDuration(0); + window.timeInstance.setDuration(0); } }, false, diff --git a/src/test.js b/src/test.js index 3ce6bfa..867777a 100644 --- a/src/test.js +++ b/src/test.js @@ -14,7 +14,7 @@ function startGame() { var count = 0, timer; document.onclick = function () { - if (isDemo) return; + if (isDemo || config.mode !== 1) return; if (count < 6) { if (timer) { clearTimeout(timer);