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

WPF/Silverlight 遊戲開發教程 (二十一-3):為何遍歷用 for 不用 foreach?QXMap 控件誕生記

     編輯:關於C語言

foreach 陷阱:動態修改集合拋出異常

遊戲迴圈中頻繁移除死亡怪物 (Carrier.Children.Remove(monster)) 會導致 foreach 拋出 InvalidOperationException:「集合已修改,無法繼續枚舉」。for 迴圈配合索引反向或緩存 Count 可安全處理。

Image 判斷地圖/遮罩的局限

直接 is Image 無法區分地表與遮罩,且難以擴展。解決之道:建立專用 QXMap 用戶控件。

QXMap 控件建立步驟

  1. Controls 資料夾右鍵 → 新增用戶控件 → 命名 QXMap
  2. 定義屬性 (含 CenterX/Y、X/Y、Width_/Height_、Source、Opacity_)
  3. XAML 中放置 Image 控件,後台綁定屬性
新增 QXMap 控件操作截圖

地表層 CenterX=CenterY=0、X=Y=0;遮罩層 X/Y 對應地表內絕對座標。統一控件類型後,AllMove() 僅需一個 is QXMap 判斷即可處理兩類圖層。

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