[問題] 關於hitTest的問題

看板Flash作者 (我好想你)時間18年前 (2008/01/08 21:10), 編輯推噓5(5012)
留言17則, 5人參與, 最新討論串1/1
假設我現在做一個射擊遊戲 通常在子彈的部份都是使用hitTest來判斷 但是flash的hitTest只能判斷方形 所有不是方形的東西都會視為方形 (如半徑R的球形會視為是邊長2R的正方形,對角線是L的菱形也會視為是邊長L的正方形) 這樣在判斷上很不實際 如果機體是不規則形、或是大的球型子彈、或是斜向發射的雷射 我就不知道要怎麼去做判斷 請問要怎麼解決這樣的問題呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.59.20

01/08 21:24, , 1F
use Bitmaps, pixel by pixel 去判斷
01/08 21:24, 1F

01/08 21:25, , 2F
只是效率不會太好 :(
01/08 21:25, 2F

01/08 21:59, , 3F
其中一個用大面積shape定義碰撞區
01/08 21:59, 3F

01/08 21:59, , 4F
另外一個用多個判斷點組成物件
01/08 21:59, 4F

01/08 21:59, , 5F
這樣算是一種解決方式
01/08 21:59, 5F

01/08 22:00, , 6F
你可以子彈用圓形當判斷區,機體上面設幾個"判斷點"
01/08 22:00, 6F

01/08 22:00, , 7F
只要有任何一個判斷點跟子彈有碰撞,就是碰撞成功
01/08 22:00, 7F

01/09 07:51, , 8F
子彈比較好解決,因為有飛行方向,我只要在前端設判斷區
01/09 07:51, 8F

01/09 07:51, , 9F
但是像是雷射光或是護盾這種東西就很難去想..
01/09 07:51, 9F

01/09 07:52, , 10F
像小遊戲版有個遊戲"設計要塞"裡面有星形的護盾..
01/09 07:52, 10F

01/09 07:53, , 11F
還有可以斜向發射的雷射,這好像用上述方式都沒辦法解決@@
01/09 07:53, 11F

01/09 16:46, , 12F
應該用 點到直線的距離公式 判斷?
01/09 16:46, 12F

01/09 16:49, , 13F
一般3D碰撞判斷也只是用近似的方式
01/09 16:49, 13F

01/09 16:49, , 14F
所以看你要怎麼用吧,我是習慣簡單的形狀和判斷點混搭
01/09 16:49, 14F

01/09 16:49, , 15F
要做完美判斷的話會很消耗資源的
01/09 16:49, 15F

01/10 04:02, , 16F
我的老辦法都是用當子彈碰撞機體時,判斷他離機體中心的距離
01/10 04:02, 16F

01/10 04:03, , 17F
這樣碰撞區域會呈一個圓形
01/10 04:03, 17F
文章代碼(AID): #17WtOx8b (Flash)
文章代碼(AID): #17WtOx8b (Flash)