HarmonyOS應(yīng)用開發(fā)實戰(zhàn):貓貓大作戰(zhàn)-reset 游戲重置
前言在「貓貓大作戰(zhàn)」中游戲重置在「重新開始」和「返回主菜單」時觸發(fā)。重置需要清理棋盤、歸零得分、停止定時器、恢復(fù)初始狀態(tài)。一個干凈的重置實現(xiàn)能避免狀態(tài)殘留導(dǎo)致的 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 狀態(tài)this.score0;this.combo{count:0,multiplier:1,lastMergeTime:0};this.cats[];this.gameTime0;this.isNewHighfalse;this.overlayOpacity0;// 4. 切換到游戲狀態(tài)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;// 防止重復(fù)點擊this.isResettingtrue;// ... 重置邏輯this.isResettingfalse;}五、最佳實踐引擎和 UI 分別重置引擎只重置數(shù)據(jù)UI 層額外清理狀態(tài)定時器清理優(yōu)先重置前先清理定時器防止重置過程中觸發(fā)回調(diào)防止重復(fù)重置用標志位控制重置后驗證可選調(diào)用isGameOver()驗證已恢復(fù)總結(jié)游戲重置需要清理棋盤、歸零得分、停止定時器。核心要點reset()引擎重置、restartGame()完整重置流程、 定時器清理防殘留、 標志位防重復(fù)。如果這篇文章對你有幫助歡迎點贊、收藏?、關(guān)注你的支持是我持續(xù)創(chuàng)作的動力相關(guān)資源GameEngine 源碼第 132 篇game-over第 134 篇preferences第 135 篇rdb

相關(guān)新聞

Spring 項目 Java 訪問修飾符 + 非訪問修飾符全景梳理詳解

Spring 項目 Java 訪問修飾符 + 非訪問修飾符全景梳理詳解

前言Java 修飾符分為兩大體系:訪問權(quán)限修飾符(控制類 / 成員可見范圍)、非訪問修飾符(定義特性、生命周期、Spring 框架專屬語義)。 SpringBoot/Spring 開發(fā)中,修飾符貫穿 Controller、Service、Mapper、實…

2026/7/29 0:55:26 閱讀更多
麥昆STEAM教育機器人:從硬件解析到編程進階的完整學習路徑

麥昆STEAM教育機器人:從硬件解析到編程進階的完整學習路徑

1. 從“玩具”到“伙伴”:麥昆STEAM成長記的緣起如果你是一位關(guān)注青少年科技教育或創(chuàng)客文化的家長、老師,或者你本身就是個對機器人、編程充滿好奇的大朋友,那么“麥昆”這個名字你大概率不會陌生。它可能不是那個動畫片里的賽車,…

2026/7/29 7:36:08 閱讀更多
物聯(lián)網(wǎng)設(shè)備安全芯片選型與SE050+PIC18F45K22方案解析

物聯(lián)網(wǎng)設(shè)備安全芯片選型與SE050+PIC18F45K22方案解析

1. 為什么物聯(lián)網(wǎng)設(shè)備需要專用安全芯片?在智能家居和工業(yè)物聯(lián)網(wǎng)項目中,開發(fā)者常面臨一個兩難選擇:使用通用MCU實現(xiàn)基礎(chǔ)功能雖成本低廉,但安全防護薄弱;而采用高端安全方案又會導(dǎo)致BOM成本飆升。這正是SE050 Plug&Tr…

2026/7/29 7:36:08 閱讀更多
量子計算VQE算法解析與TFIM模型應(yīng)用實踐

量子計算VQE算法解析與TFIM模型應(yīng)用實踐

1. 量子計算時代的變分算法革命當我在IBM量子體驗平臺上第一次運行VQE算法時,那個瞬間讓我想起了早期經(jīng)典計算機編程的歲月。變分量子本征求解器(Variational Quantum Eigensolver, VQE)作為當前NISQ(含噪聲中等規(guī)模量子)時代最具實用價值的量子-經(jīng)典混合算法&#…

2026/7/29 7:36:08 閱讀更多
LaTeX插圖全攻略:從浮動體原理到多圖排版實戰(zhàn)

LaTeX插圖全攻略:從浮動體原理到多圖排版實戰(zhàn)

1. 項目概述:為什么LaTeX插圖是個“技術(shù)活”?在學術(shù)寫作、技術(shù)報告乃至書籍排版領(lǐng)域,LaTeX以其卓越的排版質(zhì)量和穩(wěn)定性,一直是專業(yè)人士的首選工具。然而,對于許多初次接觸或日常使用頻率不高的朋友來說,“在…

2026/7/29 7:36:08 閱讀更多
面試官大笑:“一個任務(wù)拆給 5 個 Subagent 并行跑,不比 1 個快 5 倍?“我搖頭:“快不了,還可能更慢“

面試官大笑:“一個任務(wù)拆給 5 個 Subagent 并行跑,不比 1 個快 5 倍?“我搖頭:“快不了,還可能更慢“

前兩個月,我在重構(gòu) AlgoMooc 網(wǎng)站過程中,發(fā)現(xiàn)一個問題:在 Claude Code 里把一個任務(wù)拆給 5 個 Subagent 并行跑,結(jié)果可能比 1 個 agent 從頭干到尾還慢? 大多數(shù)人的第一反應(yīng)是反過來的:活是并行干的&#…

2026/7/29 0:15:24 閱讀更多
# 鴻蒙 HarmonyOS 應(yīng)用開發(fā)實戰(zhàn)(第25期)|骰子(Dice Roller)— Unicode 符號與動畫渲染精講

# 鴻蒙 HarmonyOS 應(yīng)用開發(fā)實戰(zhàn)(第25期)|骰子(Dice Roller)— Unicode 符號與動畫渲染精講

一、應(yīng)用概述 骰子(Dice Roller) 是一款經(jīng)典的休閑娛樂應(yīng)用,模擬了真實擲骰子的過程。應(yīng)用投擲兩個骰子(六面標準骰),使用 Unicode 骰面符號直觀展示每個骰子的點數(shù),并伴有快速滾動的動畫效果?!?/p>

2026/7/29 0:15:24 閱讀更多