遊戲迴圈中頻繁移除死亡怪物 (Carrier.Children.Remove(monster)) 會導致 foreach 拋出 InvalidOperationException:「集合已修改,無法繼續枚舉」。for 迴圈配合索引反向或緩存 Count 可安全處理。
直接 is Image 無法區分地表與遮罩,且難以擴展。解決之道:建立專用 QXMap 用戶控件。
QXMapImage 控件,後台綁定屬性
地表層 CenterX=CenterY=0、X=Y=0;遮罩層 X/Y 對應地表內絕對座標。統一控件類型後,AllMove() 僅需一個 is QXMap 判斷即可處理兩類圖層。