作者phs5222 (eric)
看板Flash
標題[問題] Flash HitTest問題求救啊!
時間Thu Oct 15 14:35:44 2009
最近小弟寫一個敲擊的FLASH
但是...卻碰上了一個問題
想說請教一下各位大大
就是...我已經從元件庫裡面呼叫出來的影片元件
但是沒辦法跟我舞台上的另外一個影片元件做HitTest的碰撞
在網路上我爬了一些文還是想不太出頭緒
想請各位大大幫我看一下
↓Fla編輯的原始檔案
http://0rz.tw/yKcuA
↓swf的播放檔
http://0rz.tw/D1B1T
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.122.45.52
1F:推 shingoliang:你要哪個元件跟哪個元件作碰撞?太鼓跟黑色?還是..? 10/15 16:06
2F:→ phs5222:當綠色的按鈕按下去的時候 偵測太鼓的圖和黑色的區塊 10/15 16:10
3F:→ phs5222:是否有做HitTest 10/15 16:10
4F:→ sextitanic:不然的話用個陣列或是堆疊,把你新增出來的元件名稱 10/15 18:12
5F:→ sextitanic:放到堆疊或是陣列之中,等你新增的元件被 remove 掉時 10/15 18:12
6F:→ sextitanic:順便把堆疊或是陣列中的資料清掉,並把後面的元件名稱 10/15 18:12
7F:→ sextitanic:往前移,如陣列 hitArray[0]原先是 m1,m1 被 remove 10/15 18:13
8F:→ sextitanic:就把 m2從 hitArray[1] 往前移到 [0],m3、m4 依此類推 10/15 18:14
9F:→ sextitanic:然後用個迴圈做 hitTest 10/15 18:17
10F:→ sextitanic:hit1.hitTest(hitArray[i]) 類似這樣子的方法 10/15 18:19
11F:→ sextitanic:通常這種遊戲一次只會偵測一個,那就再設個變數為布林 10/15 18:19
12F:→ sextitanic:如果每次都只偵測有沒有跟 hitArray 陣列 [0]做碰撞 10/15 18:20
13F:→ sextitanic:那如果[0]過去還沒消失,但[1]在黑色方塊,那會沒反應 10/15 18:30
14F:→ sextitanic:所以用迴圈偵測所有在場景上的太鼓有沒有跟黑塊碰撞 10/15 18:31
15F:→ sextitanic:但如果 [0]跟[1]的元件同時碰撞到黑色區塊,會一起消掉 10/15 18:32
16F:→ sextitanic:所以用個布林變數,預設為 false,當按鈕按下去之後 10/15 18:33
17F:→ sextitanic:如果布林變數是 false,偵測碰撞,有碰撞到就設為 true 10/15 18:34
18F:→ sextitanic:如果是true的話就跳離偵測碰撞的迴圈,並將它設為false 10/15 18:34
19F:→ sextitanic:寫了一大串,歹勢呀,只是我覺得應該可行的方案 @@" 10/15 18:35