[程式] 四面碰撞偵測的問題(SDL)

看板GameDesign作者 (宇宙學型男)時間11年前 (2013/02/14 01:10), 編輯推噓5(502)
留言7則, 4人參與, 最新討論串1/1
大家好 最近在設計類似洛克人的遊戲 我現在遇到碰撞偵測的一些問題 主要是想設計一個類似跳台的地方 碰到跳台的左右兩側可以慢速滑下來 (有玩過洛克人應該都有印象) 碰到跳台的下面會反彈落下 (當然就跟超級馬力去撞已經撞過得?號是一樣的意思) 站到跳台上面就跟在地面行走一樣 我不確定這樣的要求是不是非常難的工作@@ 翻了一些資料 但是我摸了好幾天幾乎一天快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

02/14 01:19, , 1F
不考慮用box2d之類現成的物理引擎嗎?
02/14 01:19, 1F

02/14 01:19, , 2F
你的check_collision在沒碰撞的時候才會去設定Left/Right
02/14 01:19, 2F

02/14 01:20, , 3F
/Top/Bottom_Collision 這不太對吧
02/14 01:20, 3F

02/14 20:58, , 4F
x_rockman += x_velocity; 和y 的這兩行要放最後才對
02/14 20:58, 4F

02/15 00:56, , 5F
不能用else if
02/15 00:56, 5F

02/15 01:04, , 6F
XY移動量不為1的時候很容易直接卡進角中 要同時判定
02/15 01:04, 6F

02/15 02:11, , 7F
再來是有接觸判定後 偏移量不一定是定值
02/15 02:11, 7F
文章代碼(AID): #1H6yZjHy (GameDesign)