close


【SLG遊戲 (風色幻想III) 】  (C)FunYours Technology Co,Ltd.

SLG遊戲,或者更確切一點說是..S RPG
( S RPG = Strategy Role-Playing Game )
說成中文的話,有人叫作「戰棋遊戲」...

代表作有...夢幻模擬戰 / 炎龍騎士團 / 天使帝國 / 風色幻想 / ...等等

今天我們要探討的問題是...這個棋盤式移動系統是怎麼做的? 
 
【 圖 1 】模擬移動能力為3格,可移動範圍
 

【圖 2 】 計算 ( 3, 3 ) 與原點的距離

要設計移動之前,我們知道
這個棋盤遊戲 只能走 直的 或 橫的....
所以一點與原點的距離...
就是 X座標差 + Y座標差
 
那麼我們把每一個點,去做判斷
看看哪些點,和原點的距離,是小於3格的

 
【圖 3 】 與 ( 5, 4) 相隔 3 格以內的格子

計算出來的結果,就類似一個圓圈
這些格子,是一個「在 點( 5, 4 ),移動能力為 3 格」 的人物可以移動的格子

所以我們知道,要判斷可以移動位置,要丟入三個參數
(a). 人物 X 座標
(b). 人物 Y 座標
(c). 人物 可移動格數

然後寫一個程式,把距離人物指定格數以內的座標標記起來...


【 圖 5 】 程式運行結果

[ 下載範例 + 原始碼 ]



討論:
【問】為什麼要用步數判斷? 而不用半徑判斷?

【答】這是非常有意思的一個問題

如果要用半徑判斷,那我們是把每一點 都用畢氏定理 去算出 與原點距離

但是我們的格子是 離散 的 (也就是沒有小數點)
所以不可能畫出一個「無懈可擊的圓」  


從這張圖我們知道,對於咖啡色上面四個點,
仍然是在半徑3以內的範圍....
但這四點,不是我們想要的結果
因此,我們絕對不能用半徑去判斷...!!
  [ 操作看看 ]

 

  【問】你的範例中,沒有障礙物啊!
有了障礙物,步數的計算並不這麼單純!

【答】是的,有了障礙物,步數的計算就麻煩了

這個步數計算的技術門檻就高出許多了 ( 更何況碰上障礙物很多的情況下...)
因此市面上有遊戲,是不考慮障礙物的

在此...有誰可以指導一下這個要怎麼計算.....XDDD  (瓶頸...正經全破功...)



arrow
arrow
    全站熱搜
    創作者介紹
    創作者 finalfrank 的頭像
    finalfrank

    Frank's 資訊科技潮流站

    finalfrank 發表在 痞客邦 留言(3) 人氣()