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

WPF/Silverlight 遊戲開發教程 (二十二-4):重構成果 — XML 配置驅動場景切換與屬性精簡

     編輯:關於C語言

從配置文件初始化地圖表層

private void InitMapSurface(XElement args)
{
    MapSurface = new QXMap();
    MapSurface.Source = BitmapFrame.Create(new Uri(args.Attribute("Src").Value, UriKind.Relative));
    MapSurface.Width_ = Convert.ToDouble(args.Attribute("Width").Value);
    MapSurface.Height_ = Convert.ToDouble(args.Attribute("Height").Value);
    MapSurface.X = Convert.ToDouble(args.Attribute("X").Value);
    MapSurface.Y = Convert.ToDouble(args.Attribute("Y").Value);
    Carrier.Children.Add(MapSurface);
}

遮罩、障礙物陣列同理載入。換地圖只需重新載入對應 Sign 節點;新增/修改地圖僅改 XML,客戶端熱更新替換配置文件即可 — 典型分層開發模式。

屬性精簡:消除 x:Name 與 Name 重複

WPF 中 x:Name 與 Name 效果完全一致,屬重複設計。重構時審視所有屬性:是否重複?是否合理?是否未用卻殘留? 統統回爐重造。

實例:用 ActualWidth/Height 替代手動維護的中心點

原需監聽視窗尺寸變更手動更新 WindowCenterX/Y。重構後:

// 替換所有 WindowCenterX → ActualWidth/2
// 替換所有 WindowCenterY → ActualHeight/2

視窗拖曳、最大化、還原皆自動適配,零代碼維護 — 心有靈犀的得力助手。

下節預告:十幾行代碼實現 WPF 任意縮放,完美擬真 MMORPG 全螢幕/窗口切換

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