跨執行緒呼叫必須在 Dispatcher 關聯執行緒執行委派,使用 this.Dispatcher.BeginInvoke() 實現異步處理,優先級設為 DispatcherPriority.Normal。
private void BackWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
count += 1;
}
可對異步結果管理、計數刷新次數。
螢幕左下角按鈕,每次點擊地圖上方妖精向右下移動 50 像素。走到它旁邊,移動後站到原位置測試障礙物是否仍存在,向新位置移動測試新障礙物是否生效:

FixedObstruction 地圖載入時固定,房屋牆壁樹木永不可穿越。Obstruction 屬性保存自身障礙物資訊,完美但耗時耗空間。VaryObstruction,處理副本作為此次移動障礙物。20 隻怪物隨機佈局測試圖:

相對主角的完美障礙物系統完成,下節進入戰鬥系統。