切換
舊版
前往
大廳
主題

[XNA練習] 遊戲MAP實作(1/31 碰撞處理)

Jin | 2013-01-30 18:18:36 | 巴幣 8 | 人氣 362

經過多天的努力(快接近一個星期吧)
終於弄出了建構地圖的方法
也同時找到一款地圖編輯器(應該適用於所有平台吧)
不過真的挺花頭腦的
最後用的方法是將編輯好的文件檔(內容排放是為二維陣列)寫入程式裡
然後再用迴圈及一維陣列去分割
取得每個行數跟每行的字元集合
再繪製出來

下面代碼可去參考看看(XNA4.0)
寫得不好請見諒~
(專案檔分兩個部分 一個是已寫好的二維陣列 另一個是從文字檔讀取的二維陣列)
有夾帶文字檔
修改一下路徑就可以開啟了

隔了一天後
想到了地圖、玩家的碰撞處理
先使用Rectangle檢查(地圖)與(玩家)圖素之間有無碰撞(兩個需先宣告Rect)
再使用If檢查二維陣列裡面的數字
是否碰撞到你要檢查的物件
例如:
陣列裡有0、1、2三個數字
我想碰到1就結束
那我只要再寫進:
if ([二維陣列] == 1)
{Exit(); }

PS:因為地圖跟玩家 每分每秒都會碰撞在一起
所以先檢查碰撞
再檢查碰撞到的是否對應到所需要的代號

創作回應

Hua
Tiled map Editor
http://www.mapeditor.org/
可視化編輯介面更好用, 我在C2裡也做了一個tmx file的parser.
2013-01-30 18:21:41
Jin
[e12] 參考看看 感謝
2013-01-30 18:24:12
Hua
另一種tile map editor
http://www.ogmoeditor.com/tutorials.html
2013-01-30 18:24:56
Jin
太感謝了 英文苦手 都不知道怎麼去找= =
2013-01-30 18:26:02
Hua
這都是別人告訴我的, 國外的game design社群比較活躍. 能學到/知道不少東西.
2013-01-30 18:29:34
Jin
2013-01-30 19:01:39
薯條控
加油阿
二唯陣列我的死穴..
2013-01-31 02:16:28
Jin
呵呵 我也是不太熟悉二維陣列的用法 還是要多練習=~=
2013-01-31 06:42:52
貓貓風 ฅ●ω●ฅ
利害耶[e34]
2013-02-04 00:12:20
Jin
很花頭腦就對了[e19]
2013-02-04 09:54:08

更多創作