亚洲免费人人妻人人,cao78在线视频,福建一级毛片,91精品视频免费观看,高清另类图片操逼,日本特黄特色大片免费看,超碰欧美人人澡曰曰澡夜夜泛

Silverlight游戲設(shè)計(Game Design):(十三)帝國時代II(Demo)之“戰(zhàn)爭藝 -電腦資料

電腦資料 時間:2019-01-01 我要投稿
【www.msguai.com - 電腦資料】

帝國時代是一部闡述世界戰(zhàn)爭發(fā)展史的游戲巨著,講究還原真實的歷史戰(zhàn)爭場景,其中的陣型系統(tǒng)為 游戲的極大亮點之一;玩家根據(jù)兵種的不同搭配上最合適的陣型時常能起到逆轉(zhuǎn)乾坤的神效,經(jīng)典的如前 槍,中騎,后投石,強大的陣型加上玩家精確的微操能瞬間掃蕩大規(guī)模敵軍而毫發(fā)不傷,

Silverlight游戲設(shè)計(Game Design):(十三)帝國時代II(Demo)之“戰(zhàn)爭藝

。陣型系統(tǒng)不僅僅 存在于即時戰(zhàn)略游戲中,在《三國志》、《信長野望》等SLG策略游戲中,其同樣是一者永遠不可缺少的 重要機制。

本節(jié),我將在上一節(jié)搭建的《帝國時代》Demo的基礎(chǔ)上引入比原著更加靈活多變的自定義陣型系統(tǒng), 以讓戰(zhàn)爭游戲更顯真實與華麗。

自定義陣型系統(tǒng)的靈感來源于國際象棋,陣型好比“棋盤”,作戰(zhàn)單位好比“棋子”;因此從結(jié)構(gòu)出 發(fā),我選擇使用Grid作為構(gòu)建陣型系統(tǒng)的最底層載體,通過指定Row和Column即可隨意布局棋子到指定方 格內(nèi):

在本節(jié)Demo中,我將“棋盤”擺放在HUD的中下方,并限制其為一個4*12最大容納48單位的表格型載體 。

有了“棋盤”,當然還少不了“棋子”。“棋子”是一個圖標,于是我創(chuàng)建一個名為Piece的類,該類 包含一個圖片控件和一個矩形方塊控件(血條):

上圖為騎兵對應的“棋子”圖標。接下來要實現(xiàn)自定義的棋子布局,我們還需為這些棋子增加座位交 互功能:即點擊其中一個棋子后,該棋子為選中狀態(tài),并與接下來點擊的位置或另一個棋子進行位置交換 ,代碼很簡單,大致如下:

Piece hitPiece = null; //點擊的棋子
         /// 


         /// 單位位置更換
         /// 

         private void img_MouseLeftButtonDown(object sender,  MouseButtonEventArgs e) {
             if (hitPiece == null && (int)((sender as  Piece).Code) != -1) {
                 hitPiece = sender as Piece;
                 hitPiece.Effect = new DropShadowEffect() {  BlurRadius = 8, ShadowDepth = 0, Color = Colors.Red };
             } else if (hitPiece != null) {
                 int ldRow = Grid.GetRow(hitPiece);
                 int ldColumn = Grid.GetColumn(hitPiece);
                 Piece piece = sender as Piece;
                 int newRow = Grid.GetRow(piece);
                 int newColumn = Grid.GetColumn(piece);
                 Grid.SetRow(piece, oldRow);
                 Grid.SetColumn(piece, oldColumn);
                 Grid.SetRow(hitPiece, newRow);
                 Grid.SetColumn(hitPiece, newColumn);
                 hitPiece.Effect = null;
                 hitPiece = null;
             }
             e.Handled = true;
         }

“棋盤” 和“棋子”功能完成后,我們最后要做的僅僅是將這套布局應用到游戲中的作戰(zhàn)單位上,

電腦資料

Silverlight游戲設(shè)計(Game Design):(十三)帝國時代II(Demo)之“戰(zhàn)爭藝》(http://www.msguai.com)。上一 節(jié)中講解了如何對單位進行范圍選取,每次選取后“棋盤”中所顯示的即為選擇的單位們所對 應的“棋子”,這里我通過一個DispatcherTimer每間隔1秒鐘刷新一次“棋盤”中 所有“棋子”的血條值;當然,這或許并非最好的解決方案,但卻是一則通用且簡單高效的實 現(xiàn)方式之一:

查看原圖(大圖)

陣型系統(tǒng)的最終實現(xiàn)即是對所選取的作戰(zhàn)單位按排列好的布局圖進行走位,Grid作為棋盤的優(yōu)越性及 簡易性也將從中得以體現(xiàn),實現(xiàn)起來代碼就更簡單了:

……
Point p  = e.GetPosition(mainScene.Container);
//單個精確移動,多個則按陣型移動
if (mainScene.SelectedArmy.Count == 1) {
     mainScene.SelectedArmy [0].MoveTo(p);
} else {
    for (int i = 0; i <  facePlate.formation.Children.Count; i++) {
         Piece piece =  facePlate.formation.Children[i] as Piece;
         if (piece.Code != -1)  {
             int row = Grid.GetRow(piece);
              int column = Grid.GetColumn(piece);
              piece.CorrespondingSprite.Enemy = null;
              piece.CorrespondingSprite.MoveTo(new Point(p.X + column * pieceSpace, p.Y + row *  pieceSpace));
          }
     }
}
……

自定義陣型是陣型系統(tǒng)中的最高級別,實際游戲開發(fā)中,根據(jù)需要將“棋盤”定義為相應規(guī)格尺寸的 Grid后,即可衍生出更加豐富多變的固定或非固定陣型,不僅大幅度增加游戲的趣味性與戰(zhàn)略性,同時也 是設(shè)計師們對游戲藝術(shù)的不屑追求。

以上為隨意排列出的一些經(jīng)典陣型,不禁讓我再次重溫了一遍從小陪伴我長大的三國志系列。當然了 ,實際中您可以根據(jù)兵種的近、遠距離攻擊屬性及移動速度、相生相克等因素布局出更適合不同戰(zhàn)役的陣 型。戰(zhàn)斗,勝敗的關(guān)鍵在策略,而陣型就是其核心之一,這就是戰(zhàn)爭藝術(shù)!

在線演示地址:http://silverfuture.cn

本文配套源碼

說明:源文件較大,對其進行了分割壓縮。請將各分卷下載到同一文件夾,解壓其中的part1或part01即可。

AoEIIDemo.part1.rar

AoEIIDemo.part2.rar

AoEIIDemo.part3.rar

最新文章