作者Cosmology (宇宙學型男)
看板GameDesign
標題[程式] 四面碰撞偵測的問題(SDL)
時間Thu Feb 14 01:10:02 2013
大家好
最近在設計類似洛克人的遊戲
我現在遇到碰撞偵測的一些問題
主要是想設計一個類似跳台的地方
碰到跳台的左右兩側可以慢速滑下來
(有玩過洛克人應該都有印象)
碰到跳台的下面會反彈落下
(當然就跟超級馬力去撞已經撞過得?號是一樣的意思)
站到跳台上面就跟在地面行走一樣
我不確定這樣的要求是不是非常難的工作@@
翻了一些資料
但是我摸了好幾天幾乎一天快13個小時左右 一直沒辦法設計出成功的邏輯模組
可以請高手幫我看一下嗎?
/*
http://ideone.com/Lhe3YO
這個是檢測是否兩物體碰撞成功的程式
參考:
http://lazyfoo.net/SDL_tutorials/lesson17/index.php
再加上自己的一些想法改編的
主要是加入四個數字來判斷到底碰到哪一邊
*/
/*這邊是邏輯區*/
/*
http://ideone.com/HzjxoC
box就是我洛克人的一個方塊 Wall就是我設定的牆壁(應該不是重點)
主要的想法是說
左右邊碰撞的時候
洛克人朝原來移動的反方向動(跟邊界碰撞一樣)
但是另外有速度5向下
上面碰撞時就直接落下 且比攀爬牆壁快 速度10
站在平台上 這瞬間Y速度歸0
*/
感覺想法都沒錯
可是執行的時候 會有穿牆的問題
一直看不透到底哪邊有問題
我知道資訊可能比較片段 因為我也不知道問題出在哪邊= =
如果有需要更多資訊請跟我說 我看到會盡快補足資料的
希望高手能給我一點想法
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.253.122.210
→ azureblaze:不考慮用box2d之類現成的物理引擎嗎? 02/14 01:19
推 BSpowerx:你的check_collision在沒碰撞的時候才會去設定Left/Right 02/14 01:19
→ BSpowerx:/Top/Bottom_Collision 這不太對吧 02/14 01:20
推 KanoLoa:x_rockman += x_velocity; 和y 的這兩行要放最後才對 02/14 20:58
推 juicefish:不能用else if 02/15 00:56
推 juicefish:XY移動量不為1的時候很容易直接卡進角中 要同時判定 02/15 01:04
推 juicefish:再來是有接觸判定後 偏移量不一定是定值 02/15 02:11