推 KanoLoa:如果要做這功能,通常會用現成的引擎吧 ? 08/06 22:03
→ KanoLoa:自己刻要簡單就用暴力法存地形座標,再不然判斷色塊。 08/06 22:06
因為我們是用sdl自己寫的,所以沒有引擎@@
推 damody:請問原po用的是遊戲引擎,還是dx opengl硬幹? 08/06 22:08
我是用sdl自己寫的
→ damody:基本上你的坡會有個梯度變化量 你可以設定一個門檻值 08/06 22:09
沒聽過梯度@@等等google查查看,謝謝
→ damody:超過這個門檻值就可以往前 否則只能往後之類的 08/06 22:09
感謝提供的網址,我再來看看
→ damody:因為你會有這個坡的連續點 可以算出角色目前站的位置的梯度 08/06 22:10
推 littleshan:一般engine的解法就是地板是個collider 08/06 22:20
→ littleshan:你的人物會受到重力往下掉,直到碰到collider為止 08/06 22:20
→ littleshan:如果你是自己刻程式也建議這樣做 08/06 22:21
→ littleshan:因為2d platformer幾乎一定要用到collider 08/06 22:21
我本來也有這樣想過,就一直往下掉,直到掉到地板為止,
可是感覺這樣在爬坡的時候,斜坡事在身體的旁邊,
感覺沒辦法用往下掉的方式來爬上坡
還是是我的想法錯誤@@?
※ 編輯: yoll522 來自: 49.158.60.5 (08/06 22:28)
※ 編輯: yoll522 來自: 49.158.60.5 (08/06 22:31)
→ yoll522:因為個人英文不是很好,所以看網址的話要翻譯很久 08/06 22:42
→ yoll522:網址上的方法似乎也是把地圖變成很多個格子,用座標的 08/06 22:43
→ yoll522:方式來判斷前後左右該做的事情嚕? 08/06 22:43
→ azureblaze:差不多是那樣 08/06 23:01
→ azureblaze:另外你也可以用物理引擎來幫你處理碰撞 08/06 23:01
→ azureblaze:可是用物理控制角色會比較麻煩 08/06 23:01
→ yoll522:我有學過這種方法的碰撞,只是物體是四四方方的正方形 08/06 23:10
推 futfan:試試看讓角色貼著給的點或線移動,能作的話應該就能解決? 08/06 23:10
→ yoll522:所以我想說如果套用到高地不一的地板的話似乎也沒辦法 08/06 23:10
→ futfan:當然如果你要作出加速感的話,就需要三角函數。 08/06 23:12
→ yoll522:請問意思是說在地板上再多畫一條線,讓角色跟著線移動嗎 08/06 23:13
→ easy0519:高低不一地板判斷 你可以拿一張黑白圖來判定哪邊可以走 08/06 23:16
→ easy0519:以及哪邊不能走 08/06 23:16
→ easy0519:在斜坡判定..假設腳色位置在 (x, y) ,在 x 軸上想往 v 08/06 23:18
→ easy0519:方向走..可以去查那張黑白圖 (x + v, y) 判定是否能走 08/06 23:18
→ easy0519:If not, 檢查 (x+v, y+1) 到 (x+v, y+n) 區段是否可以走 08/06 23:19
→ easy0519:如果可以 (x+v, y+k) 可以走,直接設定腳色在這個位置 08/06 23:20
→ easy0519:其中 n 為你允許玩家最陡能走的坡度, y<k<=n 08/06 23:21
→ yoll522:原來如此,這方法感覺還不錯,我明天會來設計看看的 08/06 23:38
→ yoll522:謝謝你的詳細步驟唷,也謝謝其他人的幫忙 08/06 23:38