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);