A* 尋路清晰繪製路徑,主角沿斜度 60° 繞過菱形障礙物區。因 W(0,0) 與 G(0,0) 同定位於視窗左上,紅色負值區域不被識別,點擊會提示「路徑不存在」,證明座標系構建成功。
將本節菱形障礙物代碼替換第九節正方形障礙物:
for (int x = 10; x < 20; x++)
for (int y = 0; y < 10; y++) {
Matrix[x, y] = 0;
rect = new Rectangle();
rect.Fill = new SolidColorBrush(Colors.GreenYellow);
rect.Opacity = 0.3;
rect.Stroke = new SolidColorBrush(Colors.Gray);
rect.Width = GridSize;
rect.Height = GridSize;
Carrier.Children.Add(rect);
Point p = getWindowPosition(x, y);
Canvas.SetLeft(rect, p.X);
Canvas.SetTop(rect, p.Y);
}
同樣邏輯:第九節垂直方塊,本節菱形顯示。斜度 α 地圖構建成功!
A* 無視格子形狀尋路,斜度地圖實戰無處不在。地圖編輯器決定遊戲成敗,路漫漫。下節講地圖遮罩效果,敬請關注。