From 40678dfb4e16ad3a9da1be82998d12a671fe61f5 Mon Sep 17 00:00:00 2001 From: wally <18603454788@163.com> Date: Thu, 30 Sep 2021 09:00:57 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=AC=A1=E6=95=B0?= =?UTF-8?q?=E9=97=AE=E9=A2=98bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 4 +++- src/classes/main.js | 20 ++++++++++++++++++-- src/custom.js | 10 ++++++---- src/message.js | 26 ++++++++++++++------------ src/test.js | 2 +- 5 files changed, 42 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index 5691ff4..ff9646b 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,9 @@ "version": "1.0.0", "description": "", "main": ".svrxrc.js", - "scripts": {}, + "scripts": { + "dev": "gulp" + }, "repository": { "type": "git", "url": "gitea@dd.tall.wiki:ccsens_fe/bird-go-home.git" diff --git a/src/classes/main.js b/src/classes/main.js index 4effc22..9d9d4ae 100644 --- a/src/classes/main.js +++ b/src/classes/main.js @@ -43,10 +43,14 @@ Main.prototype.init = function () { // 限制了两次动作间隔时间不能少于2s // 游戏状态在进行中才能触发 // play次数 >= 最多完成次数 调用结束的callback -Main.prototype.play = function () { - if (Date.now() - this.prevTime <= 2000 || state !== 1) return; +Main.prototype.play = function (direction) { + if (Date.now() - this.prevTime <= 1200 || state !== 1) return; + // if (state !== 1) return; this.element.play(); this.times += 1; + + this.computeScore(this.times, direction); + this.prevTime = Date.now(); if (this.times >= this.max) { this.times = this.max; @@ -54,3 +58,15 @@ Main.prototype.play = function () { } console.log('this.times: ', this.times); }; + +/** + * 计算当前的次数与分值 并发送给父窗口 + * @param {number} times 当前动作执行成功的次数 + * @param {number} direction play code + */ +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 } }); +}; diff --git a/src/custom.js b/src/custom.js index b6a8b35..4820d49 100644 --- a/src/custom.js +++ b/src/custom.js @@ -6,7 +6,10 @@ const config = { level: 1, // 游戏难度级别 currentScore: 0, // 当前得分 currentTimes: 0, // 当前次数 - config: {}, // 得分配置 + config: { + scores: [{ direction: 0, score: 5 }], + directions: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], + }, // 得分配置 }; let library = null; @@ -31,9 +34,8 @@ function initStage(lib) { function gameOver() { state = 2; const times = main.times; - const score = parseInt((config.total / config.times) * times); setTimeout(() => { - End.of(score || 0); - finishMessage(score, times); + End.of(config.currentScore || 0); + finishMessage(config.currentScore, times); }, 2000); } diff --git a/src/message.js b/src/message.js index c6df1df..82c98dc 100644 --- a/src/message.js +++ b/src/message.js @@ -2,6 +2,7 @@ window.addEventListener( 'message', function (e) { const res = e.data; + console.log('子->接受: ', res); switch (res.event) { case 'start': startGame(res.data); @@ -40,12 +41,12 @@ window.addEventListener( function playGame(data) { if (state !== 1) return; - const { score, times, status, param } = data; - config.currentScore = score; - config.currentTimes = times; + const { status, param } = data; + // config.currentScore = score; + // config.currentTimes = times; state = status; - if (config.config.directions[times - 1] === param.direction) { - main.play(); + if (config.config.directions[config.currentTimes] === param.direction) { + main.play(param.direction); } else { alert('动作不匹配'); } @@ -67,21 +68,22 @@ window.addEventListener( function finishGame(data) { const { score, times, status, param } = data; state = status; - config.total = score; - config.times = times; + // config.total = score; + // config.times = times; End.of(score || 0); - window.timeInstance.setDuration(0); + // window.timeInstance.setDuration(0); } }, false, ); // 发消息 -function sendMessage(data, src) { +function sendMessage(data) { if (!data) { return alert('错误: 发送消息数据为空'); } - top.postMessage(data, src); + console.log('子->发送: ', data); + top.postMessage(data, document.referrer); } // 发送继续游戏消息 @@ -92,7 +94,7 @@ function continueMessage() { status: 1, // 1 -> 进行中 }, }; - sendMessage(data, document.referrer); + sendMessage(data); } // 发送游戏结束消息 @@ -106,5 +108,5 @@ function finishMessage(score, times) { param: {}, // 额外个性化参数 }, }; - sendMessage(data, document.referrer); + sendMessage(data); } diff --git a/src/test.js b/src/test.js index f0673fa..4533228 100644 --- a/src/test.js +++ b/src/test.js @@ -51,7 +51,7 @@ function addHash() { function test() { document.addEventListener('click', () => { - main.play(); + main.play(0); }); } test(); From 0e12682a339f2d55d7edb521e0716f9e936fea46 Mon Sep 17 00:00:00 2001 From: wally <18603454788@163.com> Date: Thu, 30 Sep 2021 09:07:08 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E7=BB=86=E8=8A=82=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/classes/main.js | 1 - src/test.js | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/classes/main.js b/src/classes/main.js index 9d9d4ae..962589c 100644 --- a/src/classes/main.js +++ b/src/classes/main.js @@ -56,7 +56,6 @@ Main.prototype.play = function (direction) { this.times = this.max; this.endCallback(); } - console.log('this.times: ', this.times); }; /** diff --git a/src/test.js b/src/test.js index 4533228..00ca2bc 100644 --- a/src/test.js +++ b/src/test.js @@ -51,6 +51,7 @@ function addHash() { function test() { document.addEventListener('click', () => { + if (isDemo) return; main.play(0); }); } From e0180ebb426b5794b0ec7d2a4242eb946c38333a Mon Sep 17 00:00:00 2001 From: wally <18603454788@163.com> Date: Thu, 30 Sep 2021 09:34:34 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix=EF=BC=9A=E6=9A=82=E5=81=9C=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/classes/suspend.js | 14 ++++++++++++-- src/custom.js | 1 + src/message.js | 3 ++- src/test.js | 2 +- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/classes/suspend.js b/src/classes/suspend.js index c33abb5..4102677 100644 --- a/src/classes/suspend.js +++ b/src/classes/suspend.js @@ -27,14 +27,24 @@ Suspend.prototype.suspendGame = function () { suspend.x = 50; suspend.y = lib.properties.height - 100; this.suspend = suspend; + const _this = this; // 继续游戏 this.suspend.addEventListener( 'click', function () { - stage.removeChild(suspend); + _this.hide(); continueMessage(); }, false, ); - stage.addChild(suspend); + // stage.addChild(this.suspend); + // stage.removeChild(this.suspend); +}; + +Suspend.prototype.hide = function () { + stage.removeChild(this.suspend); +}; + +Suspend.prototype.show = function () { + stage.addChild(this.suspend); }; diff --git a/src/custom.js b/src/custom.js index 4820d49..66e95a7 100644 --- a/src/custom.js +++ b/src/custom.js @@ -28,6 +28,7 @@ function initStage(lib) { Level.of(2); // 游戏难度级别 Back.of(); // 返回按钮 isHash(); + window.suspend = Suspend.of(); } // 游戏结束 显示结束得分面板 diff --git a/src/message.js b/src/message.js index 82c98dc..8154b90 100644 --- a/src/message.js +++ b/src/message.js @@ -55,13 +55,14 @@ window.addEventListener( function pauseGame(data) { if (state !== 1) return; state = data.status; - Suspend.of(); + window.suspend.show(); window.timeInstance.pause(); } function continueGame(data) { if (state !== 3) return; state = data.status; + window.suspend.hide(); window.timeInstance.start(); } diff --git a/src/test.js b/src/test.js index 00ca2bc..5b69b21 100644 --- a/src/test.js +++ b/src/test.js @@ -51,7 +51,7 @@ function addHash() { function test() { document.addEventListener('click', () => { - if (isDemo) return; + if (!isDemo) return; main.play(0); }); }