作者yan04870449 (一片死寂)
看板GameDesign
標題[程式] 2D遊戲中的碰撞
時間Thu Aug 6 22:52:24 2009
關於在2D遊戲裡面的一些碰撞判斷,小弟有一些疑問。
我在翻書的時候,書上曾說過碰撞的判斷就是圖與圖之間的判斷
,但是圖大多都是四四方方的,所以在判斷的時候如何做到"精準"
這就有些學問了,書上只有點到而已,並沒有說明。
--------- ------------
- A - - A -
- ●_ - _ _ - ● -
- _ - _ ------------_ _ _ _ _
----_----● _ _ _
_ B _ _ ● _
_ _ _ _ _ _ _ _ _ _ _
可能畫的有點爛...不過書上大概是這樣子講的,右圖的判斷比較好寫
,但是相對的精準度比較低,左邊的當然精準度就提高了,但相對就要
多寫好幾行CODE,,這兩種我大概都知道怎麼寫,但是我想知道如果真
的要寫到完成是圖與圖相碰(圓與圓碰在一起)才算碰撞的話,理論上來
講應該要怎麼做,或者是說有什麼方向可參考呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.128.56
1F:推 NDark:我有個想法.... 08/06 22:58
2F:推 asleisureto:另個想法 可用數個方框來代表範圍(相對於一個方框) 08/06 23:20
3F:→ asleisureto:方框越多當然就越精準啦XD 最高等級就是精準度到像素 08/06 23:21
4F:→ asleisureto:等級(誤) 08/06 23:21
5F:推 teexit:怎麼不用PIXEL檢察? 08/07 09:02
6F:推 help0430:2d可以用像素是否重疊來偵測碰撞的發生 08/07 14:22
7F:→ Splash5:比較用判定區域之類的方法 就是一個sprite真正會有判定的 08/07 15:04
8F:→ Splash5:區域 通常是方形 然後用數學裡面兩個方形有無重疊部份的 08/07 15:04
9F:→ Splash5:計算就能得到兩個判定區是否有碰撞到 08/07 15:05
10F:→ Splash5:圓形的話 用多個判定區域來作就可以了 08/07 15:06
11F:→ Splash5:像很多射擊遊戲的中彈判定都是這樣作 08/07 15:06
12F:→ killman:如果還要包含碰撞反應 每張圖可能都得用多邊形去定義外框 08/07 15:33
13F:推 cowbaying:現行的方法較多是利用圖片的alpha 值來處理 08/07 19:51