From 3981a7b0e9f877696e12b2e71b46491845cf7bf3 Mon Sep 17 00:00:00 2001 From: TKHR-Shiu Date: Thu, 30 Oct 2025 21:46:01 +0900 Subject: [PATCH 1/3] Overwrite-event --- src/life-game/event.js | 10 ++++++++++ src/life-game/life-game.js | 20 ++++++++++++++++++++ src/routes/+page.svelte | 11 ++++++++--- 3 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 src/life-game/event.js diff --git a/src/life-game/event.js b/src/life-game/event.js new file mode 100644 index 0000000..87832a6 --- /dev/null +++ b/src/life-game/event.js @@ -0,0 +1,10 @@ +const on = {}; + +let timerId = 0; + +window.addEventListener("message", (event) => { + const handler = on[event.data.type]; + if (handler) { + handler(event.data); + } +}); diff --git a/src/life-game/life-game.js b/src/life-game/life-game.js index 0254ebd..af40928 100644 --- a/src/life-game/life-game.js +++ b/src/life-game/life-game.js @@ -159,6 +159,26 @@ function progressBoard() { renderBoard(); } +//イベント + +on.play = () => { + timer = "start"; + timerId = setInterval(progressBoard, 1000); +}; + +on.pause = () => { + timer = "stop"; + clearInterval(timerId); +}; + +on.load_board = (boardTemplate) => { + board = boardTemplate; +}; + +on.resize = (newBoardSize) => { + boardSize = newBoardSize; +}; + //以下パターンデータ //(注)minBoardSizeは、パターンが余裕をもって変形できるために必要なボードのサイズを表し、パターン自体より大きい。 diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 4db6088..7e3515a 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -2,7 +2,7 @@ import * as icons from "$lib/icons/index.ts"; import lghtml from "../life-game/life-game.html?raw"; import lgjs from "../life-game/life-game.js?raw"; - import PlayandPause from "../life-game/play-pause.js?raw"; + import Event from "../life-game/event.js?raw"; let code = $state(lgjs); @@ -10,8 +10,8 @@ lghtml.replace( /