Lolik

not404

nothing
x
bilibili
github
telegram

canvas射擊遊戲

vue,ts, 面向對象,canvas2d
demo: https://blog.unrun.top/mctato/

1 月開始的想法,剛開始 7,8 個 js 文件按順序寫到 html 的 scrip 標籤中,真的很累,
後來用 vite,ts 重構 import 相互引入就行,最後打包

主要思路

玩家,僵屍類,特效類,飛行物類,繼承自矩形類
矩形類有繪製,移動等方法

  • 監聽按鍵進行移動
  • 碰撞檢測使用寬相位檢測,先檢查一個維度的情況從而過濾一部分
  • 怪物尋路基於路徑點
    • 怪物與玩家分別尋找可視 (連線沒有牆阻隔) 最短路徑點,分別連接最近路徑點,然後是帶權無向圖的最短路徑問題 (同時考慮起始兩端的距離,加入到短路徑的計算)
    • 帶權無向圖的最短路徑問題用迪傑斯特拉算法(可以緩存部分計算結果,但沒有這樣做,影響不大)

一些圖片

"最短路徑"
image

碰撞檢測
image

動畫幀
image

重構前
請輸入圖片描述

寫了很久,最後效果不太好

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。