Re: [問題] 偵測碰撞
※ 引述《evabird (匠氣逼人)》之銘言:
: 我用一個區塊來做偵測碰撞
: 可是發現不規則的形狀電腦還是以一個方塊來計算
: 也就是說空白的部份也會被算在偵測範圍
: 同學是說把區塊作小塊一點 做很多個
: 請問還有別的方法可以解決這個問題嗎??
: 謝謝
可以考慮把圖形外框分成幾個點來偵測
例如:如果圖形是菱形的話,可以在頂點用偵測點,然後在每個邊中間在用一個偵測點
偵測點的數量要視情況而做好設定
當然偵測點不要弄太多,要不然跑起來會lag
------
之後把所有偵測點對movieclip的相對座標(就是點在movieclip裡的XY座標)找出來
然後把所有座標弄成一個二維陣列(例如pt=[[0,5],[5,0],[-5,0],[0,-5]])
最後程式要用這個(寫在要碰撞的物件裡):
for (i = 0;i < A;i++){
if(MCname.hitTest(this._x+pt[i][0],this._y+pt[i][1],true)) {
//要做的動作
}
}
MCname = 被碰撞的movieclip名稱
X和Y是偵測點的相對座標
A是偵測點數量
希望這對你有用:)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.169.49.66
推
06/10 20:02, , 1F
06/10 20:02, 1F
→
06/10 20:02, , 2F
06/10 20:02, 2F
推
06/12 21:01, , 3F
06/12 21:01, 3F
推
06/13 00:00, , 4F
06/13 00:00, 4F
討論串 (同標題文章)