[請益] 物體速度過快如何判斷碰撞 (pygame)

看板GameDesign作者 (ㄍㄠˊ)時間4年前 (2020/03/16 17:19), 4年前編輯推噓8(8014)
留言22則, 9人參與, 4年前最新討論串1/1
版友好,個人是新手,出於興趣最近在用pygame練習python 想到一個可能發生的問題 原本在判斷碰撞時,是在每個frame將主角跟障礙物的hitbox看有沒交集, (假設主角跟障礙物都是長方形,因此只要用座標判斷有沒重疊) 但如果主角的速度太快,有可能在一個frame內移動已經超過障礙物的hitbox, 這樣就會變成穿牆了。 個人的想法是將主角的起點到終點路徑整個都算成hitbox, 但這樣好像會有大量運算,因為新的hitbox就不是長方形了, 導致變成要將障礙物內每個點去判斷有沒撞到主角 不曉得這種情況正常是怎麼處理呢? 主要是想問概念,不侷泥於語法跟語言,謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.230.211.24 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/GameDesign/M.1584350395.A.AB5.html

03/16 19:09, 4年前 , 1F
限制加速度
03/16 19:09, 1F
如果是真的想跑這麼快呢?

03/16 19:39, 4年前 , 2F
只看一個frame的起終點算是一個長方體吧?預看下個frame
03/16 19:39, 2F

03/16 19:39, 4年前 , 3F
會不會超過,超過就卡著
03/16 19:39, 3F
如果路徑是斜的,就不是長方體了?

03/16 21:05, 4年前 , 4F
raycast路徑
03/16 21:05, 4F
我來google查查,謝謝

03/17 01:00, 4年前 , 5F
用線去算碰撞不要用點去算碰撞.
03/17 01:00, 5F

03/17 01:29, 4年前 , 6F
tunneling也可以用掃的去看
03/17 01:29, 6F

03/17 01:29, 4年前 , 7F

03/17 01:30, 4年前 , 8F
ection.html
03/17 01:30, 8F

03/17 01:30, 4年前 , 9F
被換行了 悲劇
03/17 01:30, 9F

03/17 01:30, 4年前 , 10F

03/17 08:34, 4年前 , 11F
問概念的話推薦box2D作者在GDC的演講:
03/17 08:34, 11F

03/17 08:34, 4年前 , 12F
感謝樓上幾位的資訊! ※ 編輯: ericabab (36.230.211.24 臺灣), 03/17/2020 17:59:51

03/18 00:08, 4年前 , 13F
之前有遇到一樣的問題,我的作法是把上一個影格到
03/18 00:08, 13F

03/18 00:09, 4年前 , 14F
這個影格的矩形的四個角產生四條路徑,只要有任一條跟
03/18 00:09, 14F

03/18 00:09, 4年前 , 15F
目標矩形交會的話,就算有碰撞
03/18 00:09, 15F

03/18 00:09, 4年前 , 16F
03/18 00:09, 16F

03/20 12:33, 4年前 , 17F
我是用兩線段取最短距離
03/20 12:33, 17F

03/20 17:34, 4年前 , 18F
四條路徑的算法,特定方向和形狀還是會有漏網之魚
03/20 17:34, 18F

03/20 17:34, 4年前 , 19F
shape cast的做法之一,是把要投射的形狀A拿到被測試的
03/20 17:34, 19F

03/20 17:35, 4年前 , 20F
形狀B上,在B的範圍內掃出一個更大的區域
03/20 17:35, 20F

03/20 17:36, 4年前 , 21F
(Minkowski Sum),然後A本身縮成一個點,從該點對之前
03/20 17:36, 21F

03/20 17:36, 4年前 , 22F
掃出來的區域進行ray cast
03/20 17:36, 22F
文章代碼(AID): #1URqIxgr (GameDesign)