2014-02-12 36 views
0

我們有一個與另一個對象(mc_left)碰撞的對象(mc_robert)。發生碰撞時,我們會採取行動。我們試圖弄清楚的是如何更改對象的碰撞盒(mc_robert),以便碰撞檢測時對象重疊。我們不需要該對象的默認碰撞框(mc_robert)。任何可以提供的幫助將不勝感激。如何更改actionscript 3中影片剪輯的hitbox以不使用邊界框?

這是我們對目前我們的代碼:

var numX:Number = 0; 
var numY:Number = -2; 

addEventListener(Event.ENTER_FRAME,loop); 
function loop(e:Event) 
    { 
    mc_robert.y += numY; 
    mc_robert.x += numX; 
    if (mc_robert.hitTestObject(mc_left)) 
    { 
    numX = -2; 
    numY = 0; 
    mc_robert.rotation = -90; 
    } 
    } 

回答

0

像素完美碰撞轉換成形狀和的BitmapData使用BitmapData的命中測試方法。

如果您不想執行上述方法,您可以使用hitTestPoint並在for循環中創建多個點來執行碰撞。

例如:未測試以下代碼,但概念在那裏。這將創建一個邊界框,或者您可以使用某個trig從圓形碰撞或自定義創建點。

for(var y:int = 0;y<2;y++){ 
    for(var x:int=0;x<2;x++){ 
     var w:int = mc2.width*x; 
     var h:int = mc2.height*y; 
     if(mc1.hitTestPoint(mc2.x+w, mc2.y+h, true)){ 
      trace("collides"); 
     } 
    } 
} 

我以最好的精度使用的解決方案將是一個BitmapData衝突。

相關問題