1樓:網友
/1按點來碰撞,能精確到b的邊緣,但是碰撞點是a的中心。
if(,_y,false) =true)
碰撞。/2物件碰撞,只能精確到兩個物件的矩形邊框。
if( =true)
碰撞。/3用數學公式來計算,相對很複雜,一般需要使用box2d等引擎。
flash 碰撞檢測問題
2樓:網友
1、如果不規則物體是個矩形,那麼只要乙個擋板,覆蓋b_mc就可以了。
2、如果不規則物體比較複雜,那麼迅弊我們可以新建幾個畫素大小不等的矩形元件分別放在不規則物體的端面畝侍族上,分別叫做擋板1_mc,擋板2_mc,擋板3_mc,擋板4_mc,等等。
3、不規則物體越複雜,那麼我們的擋板可以越小,越多。
4、假如現在有不規則物體是個工字形,那麼只要3個矩形的擋板就可以談祥了,那麼幀上面的**如下:
a_ = function()
if (擋板1))
this._x +=1*(this._x-擋板1._x);
this._y +=1*(this._y-擋板1._y);
if (擋板2))
this._x +=1*(this._x-擋板2._x);
this._y +=1*(this._y-擋板2._y);
if (擋板3))
this._x +=1*(this._x-擋板3._x);
this._y +=1*(this._y-擋板3._y);
=上面是判斷小球a_mc是否碰撞擋板的**。
a_ = function()
a_;/點選小球a_mc,按下開始拖拽。
a_ = function()
a_;/鬆手停止拖拽。
flash 碰撞檢測只能通過幀事件監聽 觸發麼.
3樓:
這個問題的確十分麻煩。
就內建事件來說,mc沒有有關碰撞的事件系統,所以一般只能在每一幀中迴圈檢測。
一旦元件多了,檢測次數就會變得很大,效率變低。
優化方法其實是有針對性的,要看你需要檢測的元件組有什麼特點。
最普遍的一種辦法,就是使用mc的畫素級別檢測,當一森正個元件a要檢測與元件組中任意元件的碰撞時,將元件組b封入乙個mc,然後使用這個mc對a的畫素檢測。
即:,,true);
但是這種辦法有個問題,就是只能在a足夠小時才能將其近似為乙個點來檢測。否則不能達帆畢成預期效果。
然而對於運動的物體,又可以有另一種優化方式,就是分割槽,將有可能發生碰撞的元素分入乙個陣列,每次只用對這個陣列內的元素互相進行檢測即可。對於不可能運動進入這個區域的mc,不進行檢測,這種方式對於戰鬥遊戲中的子彈檢測有不錯的效果,因為敵人往往都在乙個特定的區域,而子彈一態春芹旦射出就能立馬判斷其可不可能進入敵人檢測區。
再者,利用數學方法檢測碰撞會比影片剪輯碰撞檢測快,如果是規則的幾何體,可以使用座標方法。
還有一種方法,不過沒怎麼用過,就是使用巢狀的mc結構,比如a下有b,b下有c,c下有d,a的同級有個m,我要檢測m對a,b,c,d的碰撞,就先檢測m - a,如果成功,就繼續檢測a本身,以及接下來的b,否則直接就跳出了檢測。
4樓:網友
在元件上寫**就行了。
求Flash AS3畫素級碰撞檢測的完整例項,謝謝
下例將建立乙個僅在矩形區域 20,20,40,40 中不透明的 bitmapdata 物件,然後呼叫 hittest 方法,且使用 point 物件作為 secondobject。在第一次呼叫中,point 物件定義 bitmapdata 物件的左上角,是透明的 在第二次呼叫中,point 物件定義...
怎麼更新flash外掛 如何升級flash外掛
不同作業系統,不同瀏覽器,adobe flash player 安裝 更新 升級方法有所不同。windows 8.1 10 ie edge瀏覽器,內建flash player,應當通過windows update檢查更新,安裝當月flash player升級補丁。例如本月更新kb3167685就是a...
Flash刷子工具怎麼使用,flash刷子工具的鎖定填充是怎麼用的
奉盛禹如蓉 刷子工具 可以隨意地畫色塊。當你單擊工具箱中的 刷子工具 後,工具箱下邊就會顯示它的 選項 我們先看看它的 選項 如圖2 1 27所示。圖2 1 27刷子工具選項 在這裡,我們可以選定畫筆的大小和樣式以及它的填色模式。讀者可以自己選取不同的大小和樣式練習練習,先找一找感覺。下面我們利用剛...