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

WPF/Silverlight 遊戲開發教程(二十七之一):動態障礙物系統設計與精靈腳底佔據區域

     編輯:關於C語言

標準 MMORPG 中每個精靈佔據腳底一小區域,隨移動動態變化。實現動態障礙物構建是進軍戰鬥系統的前奏。

雙障礙物陣列定義

byte[,] FixedObstruction = new byte[1024, 1024], VaryObstruction;

FixedObstruction 即前章 Matrix,重新命名以利理解。

精靈腳底障礙區域屬性

public int HoldWidth { get; set; }   // 擴展寬度
public int HoldHeight { get; set; }  // 擴展高度

以精靈腳底座標 (X,Y) 為中心擴展。本例 HoldWidth=1、HoldHeight=0,對應左數第二個精靈示意區域:

障礙物預測方法調整

預測時必須排除自身佔據區域,以區域邊緣點取代原預測點。以向左移動為例:

private bool WillCollide()
{
    switch ((int)Leader.Direction)
    {
        case 6:
            return VaryObstruction[
                (int)(Leader.X / GridSizeX) - Leader.HoldWidth - 1,
                (int)(Leader.Y / GridSizeY)
            ] == 0 ? true : false;
    }
}

黃色部分為新增擴展預測區域代碼。示意圖:

下一節將著手構建 VaryObstruction 動態陣列。

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