From 2097fa8f904302e5ddd79ae70d74a6aa77e62881 Mon Sep 17 00:00:00 2001 From: wally <18603454788@163.com> Date: Thu, 30 Sep 2021 09:01:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E5=88=86=E6=95=B0?= =?UTF-8?q?=E4=B8=8E=E6=AC=A1=E6=95=B0=E4=B8=8D=E5=AF=B9=E5=BA=94=E7=9A=84?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/index.html | 2 +- src/frame.js | 10 +++++++--- src/message.js | 27 +++++++++++++++++++-------- 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/public/index.html b/public/index.html index f7bb4a3..78e0f17 100644 --- a/public/index.html +++ b/public/index.html @@ -12,7 +12,7 @@
- +
动作: diff --git a/src/frame.js b/src/frame.js index 0aa02fd..3fd696b 100644 --- a/src/frame.js +++ b/src/frame.js @@ -1,6 +1,7 @@ -import { game } from './config'; -import { creatData } from './message'; import { changeButtonsDisplay, setPauseButtonStatus } from './dom'; +import { creatData, onPlayMessage } from './message'; + +import { game } from './config'; let frame = document.getElementById('iframe'); let contentWindow = frame.contentWindow; @@ -15,7 +16,7 @@ export function setFrameStyle() { // 收到消息 export function onMessage() { window.addEventListener('message', function(e) { - console.log(e); + console.log('父-接受:', e.data); // if (e.source !== frame.src) return; // 来源 const { event } = e.data; @@ -26,6 +27,9 @@ export function onMessage() { if (event === 'pause' || event === 'continue') { // 暂停 setPauseButtonStatus(event === 'pause' ? 0 : 1); } + if (event === 'play') { + onPlayMessage(e.data.data); + } }, false); } diff --git a/src/message.js b/src/message.js index c228d1d..c6d3b10 100644 --- a/src/message.js +++ b/src/message.js @@ -1,4 +1,5 @@ import { game } from './config'; + const { count, game: gameDuration, level, scores, directions, totalScore, totalTimes } = game; let currentScore = 0; // 当前得分 @@ -74,17 +75,17 @@ const createFinishData = (score=currentScore, times=currentTimes) => { const createPlayData = (direction= 0) => { let data = null; if (validatePlayCode(direction, currentTimes)) { // 动作正确 - currentTimes += 1; - const directionTarget = scores.find(item => item.direction === direction); - if (!directionTarget) { - alert('配置信息有误, 未找到事件分值') - } - currentScore += directionTarget.score + // currentTimes += 1; + // const directionTarget = scores.find(item => item.direction === direction); + // if (!directionTarget) { + // alert('配置信息有误, 未找到事件分值') + // } + // currentScore += directionTarget.score data = { event: "play", data: { - score: currentScore, // 得分 - times: currentTimes, // 次数 + // score: currentScore, // 得分 + // times: currentTimes, // 次数 status: 1, // 游戏状态 0 1 2 param: { direction, // 0 1 2 3 4 5 共6中事件参数 @@ -123,6 +124,16 @@ export const creatData = (eventType, ...args) => { return data; } +/** + * 接受play消息 并设置当前动作执行次数与分值 + * 也就是说分值 次数由游戏来维护 + * @param {*} data + */ +export function onPlayMessage(data) { + currentTimes = data.currentTimes; + currentScore = data.currentScore; +} + /** * 验证code是否是当前应该执行的动作代码 * @param code