首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 開發 WPF/Silverlight 動畫與遊戲系列教程(二十四):小心!前方怪物出沒

     編輯:關於C#

怪物生成系統

精靈框架告一段落,現在加入怪物。妖精怪物屬於精靈類型,只需建立 QXSpirit 實例。新增刷怪方法 InitMonster:

QXSpirit[] Monster;

/// <summary> 初始化怪物(刷怪) </summary>
private void InitMonster(int num) {
    Monster = new QXSpirit[num];
    Random random = new Random();
    for (int i = 0; i < num; i++) {
        if (Carrier.FindName("Magicer" + i) == null) {
            Monster[i] = new QXSpirit();
            Monster[i].Name = "Magicer" + i;
            Carrier.RegisterName(Monster[i].Name, Monster[i]);
            Monster[i].Equipment[0] = 100; // 怪物身體代號 100-N,區別主角 0-99
            Monster[i].Equipment[1] = 0;
            Monster[i].X = 2000 - random.Next(1000);
            Monster[i].Y = 1500 - random.Next(1000);
            Carrier.Children.Add(Monster[i]);
        }
    }
}

註冊名稱便於後續管理(如死亡移除、防止重複刷新)。以 (2000,1500) 為中心、邊長 1000 的正方形範圍隨機分布。

XML 配置檔驅動怪物參數

硬編碼參數難以維護,引入 XML 配置檔(參考第二十二節)。Config.xml 中 <Map Sign="1"> 節點下新增 <Spirits> 集合:

<Monster Name="Magicer001" Faction="傾城之戀" Clan="美麗呀" SName="倒影在心房"
    FrameRange0="10" FrameRange1="12" FrameRange2="11" FrameRange3="13" FrameRange4="15"
    SingleWidth="150" SingleHeight="150" TotalWidth="9150" TotalHeight="1200"
    Equipment0="100" Equipment1="0" CenterX="75" CenterY="125" X="700" Y="300" Direction="4" Speed="120" />
<Monster Name="Beast001" Faction="精英" Clan="食人族酋長" SName="絕對無敵"
    FrameRange0="8" FrameRange1="8" FrameRange2="9" FrameRange3="6" FrameRange4="9"
    SingleWidth="200" SingleHeight="200" TotalWidth="8000" TotalHeight="1600"
    Equipment0="101" Equipment1="0" CenterX="100" CenterY="170" X="200" Y="1200" Direction="0" Speed="125" />

透過 XLINQ 載入並初始化:

XElement mapdata = Super.GetTreeNode(Super.SystemConfig, "Map", "Sign", "1");
InitMonster(mapdata.Element("Spirits").Elements("Monster"));

動態完成怪物參數賦值,修改 XML 即可熱更新,無需重新編譯。

執行緒優化與測試

測試 30 隻怪物:

發現移動不連貫,調整 DispatcherTimer 優先級:主角生命線程 9 級,怪物 7 級;五大動作後台處理級別分別設為 Lowest、Normal、BelowNormal、BelowNormal、Lowest。不同級別搭配對效能、畫面、手感影響明顯。

最終測試截圖

怪物軍團成形:

得益於第十四節精靈控件封裝,創建怪物、NPC 輕鬆自如。下節將講解怪物層次關係與精準拾取滑鼠下精靈物件。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved