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

WPF/Silverlight 遊戲開發教程(三十四之一):地圖編輯器誕生與架構設計

     編輯:關於C語言

教程示例遊戲雖實現 A* 但無法輕鬆設定障礙物,且整張大圖移動導致不斷切割效能差。地圖切片可達性能最大優化:按需載入、依主角位置僅顯示特定部分。開發地圖編輯器迫在眉睫。

第一步:設計佈局

通用編輯器需適應所有尺寸地圖,選 ScrollViewer 為承載容器,雙 ScrollViewer 協同:一個載地圖、一個背景透明載障礙物網格:

雙方尺寸、捲軸位置時刻協同一致:

private void ObstructionViewer_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
    ScrollViewer scrollViewer = sender as ScrollViewer;
    MapViewer.ScrollToVerticalOffset(scrollViewer.VerticalOffset);
    MapViewer.ScrollToHorizontalOffset(scrollViewer.HorizontalOffset);
}

第二步:設計功能

1) 載入地圖

private void LoadMap_Click(object sender, RoutedEventArgs e)
{
    OpenFileDialog loadMap = new OpenFileDialog()
    {
        CheckFileExists = true, CheckPathExists = true,
        Multiselect = false, Filter = "圖像文件(*.jpg,*.png)|*.jpg;*.png"
    };
    loadMap.FileOk += loadMap_FileOk;
    loadMap.ShowDialog();
}

下節將實作網格佈局、障礙物繪製與 A* 模擬。

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