[問題] Flash HitTest問題求救啊!

看板Flash作者 (eric)時間16年前 (2009/10/15 14:35), 編輯推噓1(1018)
留言19則, 3人參與, 最新討論串1/1
最近小弟寫一個敲擊的FLASH 但是...卻碰上了一個問題 想說請教一下各位大大 就是...我已經從元件庫裡面呼叫出來的影片元件 但是沒辦法跟我舞台上的另外一個影片元件做HitTest的碰撞 在網路上我爬了一些文還是想不太出頭緒 想請各位大大幫我看一下 ↓Fla編輯的原始檔案 http://0rz.tw/yKcuA ↓swf的播放檔 http://0rz.tw/D1B1T -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.122.45.52

10/15 16:06, , 1F
你要哪個元件跟哪個元件作碰撞?太鼓跟黑色?還是..?
10/15 16:06, 1F

10/15 16:10, , 2F
當綠色的按鈕按下去的時候 偵測太鼓的圖和黑色的區塊
10/15 16:10, 2F

10/15 16:10, , 3F
是否有做HitTest
10/15 16:10, 3F

10/15 18:12, , 4F
不然的話用個陣列或是堆疊,把你新增出來的元件名稱
10/15 18:12, 4F

10/15 18:12, , 5F
放到堆疊或是陣列之中,等你新增的元件被 remove 掉時
10/15 18:12, 5F

10/15 18:12, , 6F
順便把堆疊或是陣列中的資料清掉,並把後面的元件名稱
10/15 18:12, 6F

10/15 18:13, , 7F
往前移,如陣列 hitArray[0]原先是 m1,m1 被 remove
10/15 18:13, 7F

10/15 18:14, , 8F
就把 m2從 hitArray[1] 往前移到 [0],m3、m4 依此類推
10/15 18:14, 8F

10/15 18:17, , 9F
然後用個迴圈做 hitTest
10/15 18:17, 9F

10/15 18:19, , 10F
hit1.hitTest(hitArray[i]) 類似這樣子的方法
10/15 18:19, 10F

10/15 18:19, , 11F
通常這種遊戲一次只會偵測一個,那就再設個變數為布林
10/15 18:19, 11F

10/15 18:20, , 12F
如果每次都只偵測有沒有跟 hitArray 陣列 [0]做碰撞
10/15 18:20, 12F

10/15 18:30, , 13F
那如果[0]過去還沒消失,但[1]在黑色方塊,那會沒反應
10/15 18:30, 13F

10/15 18:31, , 14F
所以用迴圈偵測所有在場景上的太鼓有沒有跟黑塊碰撞
10/15 18:31, 14F

10/15 18:32, , 15F
但如果 [0]跟[1]的元件同時碰撞到黑色區塊,會一起消掉
10/15 18:32, 15F

10/15 18:33, , 16F
所以用個布林變數,預設為 false,當按鈕按下去之後
10/15 18:33, 16F

10/15 18:34, , 17F
如果布林變數是 false,偵測碰撞,有碰撞到就設為 true
10/15 18:34, 17F

10/15 18:34, , 18F
如果是true的話就跳離偵測碰撞的迴圈,並將它設為false
10/15 18:34, 18F

10/15 18:35, , 19F
寫了一大串,歹勢呀,只是我覺得應該可行的方案 @@"
10/15 18:35, 19F
文章代碼(AID): #1AriB1aK (Flash)