
前言在「貓貓大作戰」中游戲重置在「重新開始」和「返回主菜單」時觸發。重置需要清理棋盤、歸零得分、停止定時器、恢復初始狀態。一個干凈的重置實現能避免狀態殘留導致的 Bug。一、引擎重置exportclassGameEngine{reset():void{this.boardArray.from({length:GameConfig.BOARD_HEIGHT},()Array(GameConfig.BOARD_WIDTH).fill(null));this.score0;this.combo{count:0,multiplier:1,lastMergeTime:0};this.pendingMerges[];this.nextCatLevelCatLevel.SMALL;}}二、頁面重置restartGame(){// 1. 清理定時器this.clearTimers();// 2. 重置引擎this.gameEngine.reset();// 3. 重置 UI 狀態this.score0;this.combo{count:0,multiplier:1,lastMergeTime:0};this.cats[];this.gameTime0;this.isNewHighfalse;this.overlayOpacity0;// 4. 切換到游戲狀態this.gameStateGameState.PLAYING;// 5. 啟動定時器this.startTimers();}backToMenu(){this.clearTimers();this.gameEngine.reset();this.gameStateGameState.IDLE;}三、重置檢查清單項操作驗證棋盤全部填 null全空得分歸零score 0連擊重置count0, multiplier1定時器清除全部無殘留 setInterval貓咪列表清空cats.length 0游戲時間歸零gameTime 0四、防止雙重重置privateisResetting:booleanfalse;restartGame(){if(this.isResetting)return;// 防止重復點擊this.isResettingtrue;// ... 重置邏輯this.isResettingfalse;}五、最佳實踐引擎和 UI 分別重置引擎只重置數據UI 層額外清理狀態定時器清理優先重置前先清理定時器防止重置過程中觸發回調防止重復重置用標志位控制重置后驗證可選調用isGameOver()驗證已恢復總結游戲重置需要清理棋盤、歸零得分、停止定時器。核心要點reset()引擎重置、restartGame()完整重置流程、 定時器清理防殘留、 標志位防重復。如果這篇文章對你有幫助歡迎點贊、收藏?、關注你的支持是我持續創作的動力相關資源GameEngine 源碼第 132 篇game-over第 134 篇preferences第 135 篇rdb