WPF/Silverlight 遊戲開發教程(二十五之四):HitTest 精準捕獲精靈實作
在上一節中,我們已經建立了 HitFilter 與 HitResult 兩個回呼方法,它們是 VisualTreeHelper.HitTest 控制流程的核心。
WPF/Silverlight 遊戲開發教程 (二十五-5):HitTest 精靈精準點選與半透明高亮特效
兩種選中特效方案對比 方案一:OuterGlowBitmapEffect 描邊 (僅 WPF、效能差) <Image x:Name=Body Stret
WPF/Silverlight 遊戲開發教程 (二十四-1):怪物系統上線 — 基於 QXSpirit 的妖精刷新機制
精靈框架告一段落,讓主角不再孤單 — 引入可愛妖精怪物 (QXGameEngine 素材)。 InitMonster 刷怪核心邏輯 QXSpirit[] M
WPF/Silverlight 遊戲開發教程 (二十三-2):等比例縮放模式 — 二十幾行代碼實現全物件自適應縮放
模式二:按比例縮放 — 視窗切換時所有物件 (角色、地圖、障礙物、文字) 等比例放大/縮小。核心變化:所有尺寸相關屬性乘以縮放比例。 關鍵調整:GridSiz
WPF/Silverlight 遊戲開發教程 (二十二-1):重構啟動 — 統一代碼風格、引入 CSS 思維、消除磁盤碎片化代碼
第 21 節模式大變身雖表面游刃有餘,但代碼內部日益鬆散、結構稀疏,如同 Windows 磁盤碎片堆積。代碼發出求救信號 — 是時候亮劍,進行第一次親密重構。
WPF/Silverlight 遊戲開發教程 (二十二-2):屬性訪問器封裝 Canvas.Left/Top/ZIndex — 重構之美
從網頁 CSS 靈感到 WPF 屬性封裝 網頁 position:absolute 下的 left/top/z-index 與 WPF Canvas 絕對定位異
WPF/Silverlight 遊戲開發教程 (二十二-3):XLINQ 載入 XML 配置 — 以藝術感語法構建可擴展遊戲系統
為何需要外部配置文件? 硬編碼參數 (地圖、障礙物、聲音) 僅適合早期調試。正式專案需:修改配置無需重編譯、支援熱更新 (如伺服器 IP 變更)、版本升級僅替換
WPF/Silverlight 遊戲開發教程 (二十二-4):重構成果 — XML 配置驅動場景切換與屬性精簡
從配置文件初始化地圖表層 private void InitMapSurface(XElement args) { MapSurface = new Q
WPF/Silverlight 遊戲開發教程 (二十一-1):主位式地圖移動模式 — 從牽引式到主位式的華麗轉身
主位式地圖移動模式:主角永居視窗中心 (除 8 角落),其移動帶動地圖、物件、怪物、其他玩家反向相對移動。典型 MMORPG 體驗。 9 大區域邏輯劃分
WPF/Silverlight 遊戲開發教程 (二十一-2):主位式地圖移動 — 左上區域 AllMove() 核心實作
座標系與視窗中心點 視窗 800×600 (扣除標題列 20px) → WindowCenterX=400, WindowCenterY=290。預定義兩參數供
WPF/Silverlight 遊戲開發教程 (二十一-3):為何遍歷用 for 不用 foreach?QXMap 控件誕生記
foreach 陷阱:動態修改集合拋出異常 遊戲迴圈中頻繁移除死亡怪物 (Carrier.Children.Remove(monster)) 會導致 forea
WPF/Silverlight 遊戲開發教程 (二十一-4):統一地圖控件 QXMap 實現地表與遮罩層整合
地圖地表層與遮罩層屬性高度相似,為避免重複代碼,統一建立 QXMap 用戶控件雙重擔任:地表層座標固定 (0,0),遮罩層座標對應地表內位置。 QXMap 核
WPF/Silverlight 遊戲開發教程 (二十三-1):自適應窗口化與全螢幕切換 — 架構擴展性的試金石
優秀架構的考驗:窗口/全螢幕自適應切換是否只需局部微調。本節實現兩種切換模式,驗證前 22 節搭建平台的擴展性。 模式一:僅調整可視範圍 (不縮放物件) 記錄
WPF/Silverlight 遊戲開發教程 (二十-1):改良型完美 A* 移動模式核心原理與碰撞預測實作
前 20 節奠定可擴展基礎,本節進入「第一部分拓展小結」,重點解決原版 A* 兩大痛點:無障礙仍啟動尋路浪費效能、副本地圖實現不完美。 改良型完美 A* 移動
WPF/Silverlight 遊戲開發教程 (二十-2):改良型 A* 移動模式 — 直線移動與尋路無縫切換
核心邏輯:預測碰撞才啟動 A* 傳統「坐標還原法」會造成畫面彈跳;本節採用「啟發式預測法」:直線移動中即時檢測前方單元格,發現障礙物才切換 A* 繞行。 Wi
WPF/Silverlight 遊戲開發教程 (二十-3):完美遮罩層與換裝系統實作
完美遮罩層:基於 ZIndex 的畫家算法 第十一節實現的遮罩層仍有瑕疵。本節透過精確控制 Canvas.ZIndex 實現「主角在遮罩前後自然穿梭」的效果。
WPF/Silverlight 遊戲開發教程 (二十-4):A* 尋路核心參數 GridSize 深度解析與優勢總結
針對讀者反映 A* 難度過高,本節重點補充 GridSize (單元格尺寸) 參數的設計意圖與三大核心優勢,助你靈活掌控地圖精度與效能平衡。 GridSize
C# 獲取系統硬體資訊:CPU/記憶體/時間結構體定義與 P/Invoke 簽名 (上)
為了透過 DllImport 調用 Win32 API 獲取底層系統資訊,首先需要定義與非受控記憶體佈局完全一致的結構體。本文提供三大核心結構體完整定義。 結