v1.12.0:暫停畫面會寫出暫停原因(手動暫停、視窗失去焦點、頁面進入背景或離開頁面),並提醒回到遊戲後按「繼續防守」恢復;已手動暫停時,之後的失焦或離頁不會蓋掉原本的說明。戰報改為精簡版,先看漏怪、核心損失、戰中淨收支與戰術建議,火力來源與收支明細預設收合、可自行展開;淨收支不含開波前的部署花費。準備階段新增「查看上一波戰報」,看完按「返回部署」不會直接開始下一波;窄手機上的準備按鈕重新排列,不再被擠出畫面。76 項程式測試通過,Chrome 以四種模擬尺寸檢查按鈕位置;暫停原因以模擬事件驗證,手機實機鎖屏、連續 20 分鐘前景與真人平衡仍待驗。
v1.11.0:戰報可切換「本局累計」或單一波次,逐波記錄扣血、破盾、擊退、漏怪種類、核心損失/護盾吸收/修復,以及開波能源、收入、出售退款、戰中支出與結束能源。新增規則式戰術建議,每次最多三則,依漏怪種類與數量、核心損失、剩餘能源提出,例如高速敵人突破就建議彎道搭配冰凍塔;資料不足時直接說明,舊存檔沒記錄的波次不會自行推算。已完成波次的戰報隨準備存檔保存。75 項測試通過,並在 Chrome 本機以正常資源實際打第一、二波核對戰報與建議;手機實機與連續前景耐久仍待驗。
v1.10.0:第 5、10 波 Boss 出場時,戰場上方常駐 Boss 血條,顯示剩餘生命與第一/第二階段;冷卻工廠第十波的裂核者半血後會顯示援軍召喚倒數,召喚後提示清除所有敵人才能獲勝。準備階段可展開「下一波情報」,查看敵人種類、數量與克制提示,第十波條件追加的 4 名援軍另外標示。暫停與勝敗結算新增戰況統計,列出各基座防禦塔、各武器與 EMP 的扣血、破盾、擊退,以及漏怪、核心損失、護盾吸收與修復量;統計隨準備存檔保存,舊存檔只統計載入後的戰鬥。離開頁面時也會自動暫停並清除按住的操作。69 項測試通過;Boss 血條與勝利戰報以額外能源建立的第十波測試存檔在 Chrome 驗證,不算正常資源通關;真實背景分頁與手機鎖屏仍待實機驗收。
v1.9.1:完成兩圖各兩套 Chrome 十波驗收,修正反覆重建冰凍塔的幾何累積,新增固定容量效能診斷。詳見 本輪驗收報告,手機實機與受控耐久仍待驗。
v1.9.0:設定可選第二張地圖「冷卻工廠」,兩圖部署各自儲存;新增磁軌狙擊槍(按 5)、衝刺/護盾感染者與第十波雙階段裂核者。四件原創 Blender MCP 素材保留可編輯來源。驗證範圍與待驗項目詳見進度表。
v1.8.0:核心護盾站(180 能源,20 護盾、全場上限 40)與核心修復站(200 能源,清波額外修復 4、全場上限 8)。兩者佔基座、不射擊、不可升級;護盾清波充能,戰鬥中新建不立即充能。四種攻擊塔 Lv.3 各兩條分支,必須選擇並確認付費;舊 Lv.3 存檔保留標準能力。兩件原創 GLB 以 Blender MCP 製作,共 420 三角面、41,876 bytes;保留可編輯 .blend 與 SHA256。
v1.7.0:設定內可下載準備存檔、選檔驗證與預覽、確認匯入及還原匯入前備份。戰鬥中匯出最近準備檢查點;不保存波內進度。新增 E/戰場 EMP 按鈕:半徑 8、傷害 45、減速 2.5 秒、冷卻 45 秒;Boss 效果降低,無目標不耗冷卻,暫停時冷卻停止。
後續四階段詳細開發清單:本批完成存檔搬移與 EMP;護盾/修復站、分支升級、第二地圖與新敵人仍列待開發,Chrome 模擬不等於手機實機驗收。
v1.6.0 R2:選取已建防禦塔後,可切換「最前方/最近/最強」策略,並查看下一級傷害、射程、每秒射擊次數與升級費用。最強以目前生命值排序;策略各塔獨立,準備階段會保存,舊存檔自動採最前方。
v1.5.0 新增電弧抑制槍、裝甲感染者與電弧干擾塔,詳見 素材與玩法說明。電弧攻擊無視裝甲、造成範圍傷害並短暫減速;第 4 波起出現裝甲敵人。
🌐 線上遊玩:DEADZONE|能量防線
繁體中文 3D 能量槍殭屍塔防遊戲,使用 Three.js+Vite+Blender。整合 Quaternius 殭屍、守衛與環境,以及 Kenney 科幻槍械和 Blender 自製 MK2 脈衝槍。
本輪實作 A+B+P1-04+P1-09:可走動人物、斜俯視跟隨、桌機/手機移動射擊、教學、畫質及波次續玩。敵人只攻核心。技術路線已選 G-A,Godot 保留提案。
v1.3.0 補上實際科幻 BGM〈Urgent〉:首次開始一波啟用,記住手動靜音,設定可獨立調整音樂/音效/環境聲。暫停與切換分頁停止播放、返回戰場續播;音檔載入失敗會提示重試。音樂由本站提供,約 0.91 MB,不依賴外部音樂網站串流。完整離線音樂下載尚未納入。
v1.4.0 完成方案 C 首批:守衛及三把槍各兩款外觀(含原版),新增「極地偵巡」灰白裝甲。準備階段點「裝備外觀」,可旋轉預覽、分別選擇、套用、取消及恢復原版;選擇保存在本機,外觀不影響能力。四個新增 GLB 合計 1,189,008 bytes,按需載入;既有保存外觀會在戰場就緒前恢復,單項最長等候 15 秒後回原版。
方案 C 交付與後續 · RDQ 已確認規格 · Blender MCP 安裝與實測。Blender MCP 已實際讀取場景、修改電漿發光材質、匯出 GLB 與取得視窗截圖;2026-09-08 已確認 Codex 原生 MCP 工具可用,並用於本批三件模型建模/匯出。
v1.4.2 鎖定手機 viewport 為 1 倍(maximum-scale=1、user-scalable=no),並加上雙擊、雙指與 iOS gesture 防護,避免快速連點時遊戲畫面被放大;若瀏覽器已先放大,仍可點上方「恢復原比例」。手機左搖桿控制移動與朝向,右下角點按單發/按住連射,優先命中前方最近敵人。
Windows 雙擊「啟動遊戲.cmd」,或執行:
npm install
npm run dev開啟終端顯示的 Local HTTP 網址,預設 http://127.0.0.1:5173/ 。不要以 file:// 開啟原始 index.html;那個入口會顯示啟動指引。需支援 WebGL 2 的瀏覽器。首次套件安裝需網路,模型與貼圖已隨專案保存,字型失敗可使用系統字型。
| 操作 | 桌機 | 手機 |
|---|---|---|
| 移動 | WASD/方向鍵 | 左搖桿 |
| 奔跑 | 按住 Shift | 奔跑按鈕切換 |
| 瞄準與連射 | 滑鼠瞄準、按住左鍵 | 左搖桿移動/轉向;右下角點按單發、按住朝前方連射,放開停止 |
| 換武器 | 1/2/3/4、武器卡 | 底部常駐四槍 |
| 建造 | B/建造按鈕,選塔再點「+」 | 建造抽屜選塔,收起後點「+」 |
| 全圖 | C/全圖按鈕 | 全圖按鈕;建造模式也會顯示全圖 |
| 暫停 | P/空白鍵/暫停按鈕 | 暫停按鈕 |
- 初始能源 300;四種塔可升至 Lv.3,出售返還實際投入的 70%,向下取整。人物站在基座旁時不能把塔建在自己身上。
- 脈衝為快速單體攻擊,電漿為範圍傷害,冰霜為減速;射程分別為 26/23/20 世界單位。圓形/六角/菱形準星輔助辨識。
- 射擊從角色附近發出;主要障礙與已建塔會阻擋玩家移動和射擊。草木與碎石是可通行裝飾。防禦塔沿用自動攻擊規則。
- 四槍共用熱量,100% 過熱後須降至 22% 才能再次射擊;切槍不能繞過冷卻。
- 每波結束有能源補給並修復核心 5%;第 5、10 波有巨型敵人,守住 10 波獲勝。殭屍不攻擊玩家。
- 失焦自動暫停;可切 1×/2×。設定提供音量、減少動態、瞄準輔助與低中高畫質。
- 戰況資訊:準備階段可展開「下一波情報」看敵人種類、數量與克制提示,打完至少一波後可點「查看上一波戰報」;第 5、10 波 Boss 出場時,戰場上方顯示血條、階段與援軍召喚倒數。
- 暫停與勝敗結算會顯示戰報,可選本局累計或單一波次,先列漏怪、核心損失、戰中淨收支與最多三則戰術建議,火力來源與收支明細可展開。暫停畫面會註明是手動、失焦、背景或離頁造成;自動暫停後回到遊戲不會自己恢復,要按「繼續防守」。
- 首次有五步引導,可略過,亦可從設定重看。
準備階段自動保存目前波次、核心、能源、擊退數、武器、人物位置、塔型及等級。重新開啟同一瀏覽器、同一網址來源時,可選「繼續防守」或「新戰局」。
戰鬥中重整會回到該波開始前的部署,不是逐幀戰鬥存檔。勝敗後清除該戰局檢查點。存檔格式不相容或損毀會提示開新局;儲存不可用時會顯示失敗狀態。清除瀏覽器資料、無痕關閉、變更網域或連接埠,都可能讓原存檔不可用。沒有雲端同步或跨裝置戰局。
npm test
npm run build
npm run preview
# 另一個終端,使用生產預覽隔離開發 HMR:
$env:GAME_URL='http://127.0.0.1:4173'
node scripts/verify-browser.mjs
node scripts/verify-full-session.mjs
node scripts/verify-third-person.mjs
node scripts/verify-ab-foundation.mjs
node scripts/verify-quality-fallback.mjs76 項單元測試(npm test);完整瀏覽器 10 波、勝敗重開;另有多指觸控、存檔恢復、模型故障及 BGM 播放測試(node scripts/verify-bgm.mjs)。Edge headless 與觸控模擬報告在 artifacts,詳細結果見驗證紀錄。實體手機、Safari、長時間發熱及真人難度/聽感尚未驗收。
dist 可供靜態部署;已接入 GitHub Pages 自動部署、manifest 與版本更新通知。完整離線下載尚未納入。Three.js 大於 500 kB 的建置提示仍在,建置可成功。
| 路徑 | 用途 |
|---|---|
| src/game.js、world.js | 戰局、武器/塔、敵人、人物移動與共用碰撞 |
| src/scene.js、assets.js | 場景、動畫、畫質、特效池、素材載入 |
| src/controls.js、combat.css | 桌機/多指輸入、橫直向戰鬥介面 |
| src/save.js、tutorial.js | 版本化檢查點與教學 |
| src/battle-ui.js | Boss 血條、下一波情報與戰報畫面的顯示 |
| src/battle-report.js | 戰況統計:各來源扣血、破盾、擊退與漏怪/核心/修復的記錄與存檔驗證 |
| src/wave-report.js | 逐波戰報(傷害與能源收支)的記錄、存檔驗證與規則式戰術建議 |
| src/waves.js | 各波敵人組成規則、下一波情報預覽與敵人克制提示 |
| src/lifecycle.js | 失焦、背景分頁、離頁時自動暫停,並區分暫停原因 |
| src/main.js、timing.js、audio.js | UI、整合、固定步長與音效 |
| public/models/ | 遊戲使用的 glTF/GLB/PNG |
| assets-source/blender/ | Blender MK2 可編輯母檔 |
| ASSET_SOURCES.md、asset-manifest.json | 素材來源、授權與雜湊 |
| tests/、scripts/、artifacts/ | 自動驗證與報告截圖 |
MK2 已有 .blend、生成腳本與遊戲 GLB。角色採 Idle_Gun/Walk_Gun/Run_Gun;其他角色及殭屍需保留骨架和對應動畫名稱。Kenney 原始槍依賴 Textures/colormap.png,MK2 貼圖已內嵌。匯出後驗證縮放、朝向、槍口和動畫,再打包。
詳見Blender 素材開發流程。完整 SKIN 選擇器、骨骼持握插槽規格與更多外觀仍列 P1-05 候選。使用者已授權開發時主動使用獨立瀏覽器重現、修正與回測 BUG。
favicon/OG、GitHub Pages、SW 更新提示與 chunk 一次性恢復、手機平板 RWD 及阿凱老師頁尾已加入。詳見 部署與版本更新。正式版本更新由 GitHub Actions 自動同步 APP/SW/version.json,玩家確認後重載;可以先完成當波。
這個專案是阿凱老師教育工具集的 #126 DEADZONE 能量防線:3D 塔防射擊,由桃園市龍潭區石門國民小學阿凱老師開發。
- 工具介紹頁:https://cagoooo.github.io/Akai/tool/126/
- 線上使用:https://cagoooo.github.io/zombie/
- 教學情境文章:https://cagoooo.github.io/Akai/blog/deadzone-126-3d-tower-defense-energy-weapons/
- 全部工具(上百個教育工具與原始碼):https://cagoooo.github.io/Akai/
想改造成自己的版本?到上面的教學情境文章,按左下角「複製 AI 開發提示詞」,貼給 ChatGPT、Claude、Gemini 等 AI 助手,就能參考這份原始碼開始規劃。