【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 (瓶頸...正經全破功...)

幫你補充一下 SLG是模擬遊戲,正確說法應該是RSLG或SRPG(戰略角色扮演) 一般RSLG的移動並不是這樣做 是用遞迴帶參數(移動步數)去跑的 從主角起點開始往上下左右四個方向判斷可否行進 若可行走則步數減一並遞迴繼續判斷 這樣子才能避開障礙物或敵人 遇到某些地形還可以一次減兩步達到"難以行走"的效果
喔 這篇還沒有探討到實際移動~~ 只是在探討可移動範圍而已 (移動相對來講比較好做,判斷可移動比較麻煩) 障礙物「難以行走」的部分原來是這樣做的...大開眼界了~^^ 還有... 是迴圈(loop)還是遞迴(recurrence)?? 我目前的移動都是用迴圈做的... 謝謝你的建議!! 我會參考看看的!
是遞迴(recursive) 遞迴的用法比迴圈難上許多 而且速度還比較慢 但是有些地方是非遞迴不可的 我講不清楚的話可以再問我沒關係 畢竟我很少看到談遊戲設計的部落格^^"
原來這就是我的盲點... 謝謝你!! 只是這裡的遞迴真諦...我真的不懂啊! 來日有請高手幫忙了m(_ _)m
請教大大 現在有什麼比較的slg教學書籍嗎? 我以前好像有看過但是忘了 謝謝
如果我現在手邊有的話...也不必在這邊重頭研究了XD 嗯,如果有的話可以推薦一下阿~XD