公司动态

HarmonyOS应用开发实战:猫猫大作战-reset 游戏重置

📅 2026/7/29 0:54:37
HarmonyOS应用开发实战:猫猫大作战-reset 游戏重置
前言在「猫猫大作战」中游戏重置在「重新开始」和「返回主菜单」时触发。重置需要清理棋盘、归零得分、停止定时器、恢复初始状态。一个干净的重置实现能避免状态残留导致的 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