國外有一高手, 編寫一個簡單處理手法, 名為HitTest 類別. 能為兩個複雜形狀, 進行碰撞與重疊測試.
使用方法:
import ws.tink.display.HitTest; if(HitTest.complexHitTestObject( target1, target2 )){ // <------ true }else{ // <------ false }
類別內部處理手法:
- 在BitmapData 為target1 與target2 分別畫上兩個純色形狀
- 利用BlendMode, 使兩個純色重疊位置出現一種新顏色
- 最後使用getColorBoundsRect, 測試會否出現重疊的一種新顏色
測試實例:
大家可以 [下載] 看看, 這個方法速度上, 雖然比不上原生hitTestObject 與hitTestPoint.
但基本的一百個物件(x10) 進行重疊測試, 對HitTest 仍然卓卓有餘.
作者提供的使用技巧, 是很值得參考喔.
參考來源: http://www.tink.ws/blog/as-30-hittest/
沒有留言:
張貼留言