diff --git a/src/iframe/life-game.js b/src/iframe/life-game.js index 0923633..fa05c5c 100644 --- a/src/iframe/life-game.js +++ b/src/iframe/life-game.js @@ -3,10 +3,13 @@ let timer = "stop"; let timerId = 0; let generationFigure = 0; +let timerTime = 1000; //変数設定 -let boardSize = 20; -const CELL_SIZE = 22; +const defaultBoardSize = 20; +const defaultCellSize = 22; +let boardSize = defaultBoardSize; +let CELL_SIZE = defaultCellSize; const BOARD_MIN = 100; const BOARD_MAX = 10; @@ -145,7 +148,7 @@ function progressBoard() { on.play = () => { timer = "start"; - timerId = setInterval(progressBoard, 1000); + timerId = setInterval(progressBoard, timerTime); }; on.pause = () => { @@ -161,6 +164,14 @@ on.resize = (newBoardSize) => { boardSize = newBoardSize; }; +on.timer_change = (ms) => { + timerTime = ms; + if (timer === "start") { + clearInterval(timerId); + timerId = setInterval(progressBoard, timerTime); + } +}; + sizeChangeButton.onclick = () => { const newSize = parseInt(sizeInput.value, 10); if (isNaN(newSize) || newSize < BOARD_MAX || BOARD_MIN < newSize) { diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 4006727..5bd3234 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -24,6 +24,7 @@ let showEditor = $state(true); let preview_iframe: HTMLIFrameElement | undefined = $state(); let isProgress = $state(false); + let intervalMs = 1000; let drawerOpen = $state(false); let resetModalOpen = $state(false); let bottomDrawerOpen = $state(false); @@ -37,7 +38,7 @@ }); function sendEvent(event: string, message?: unknown) { - preview_iframe?.contentWindow?.postMessage({ type: event, date: message }, "*"); + preview_iframe?.contentWindow?.postMessage({ type: event, data: message }, "*"); } @@ -188,4 +189,34 @@ > Right Arrow + + + + + +