2011-01-14 1 views
0

두 개의 원형 개체가 있습니다. 서클이 터치하자마자 감지하려고합니다. 한 원이 다른 원이 다른 원의 중심에 도달하면 추적이 충돌을 감지하지만 원이 접촉하자마자 충돌을 감지하려고합니다.플래시 액션 스크립트 + 가장자리에서 충돌 감지

내 두 기호는 coin_mc 및 mugbounds_mc입니다.

function checkHitArea(evt:Event) 
{ 

if (coin_mc.hitTestPoint(mugbounds_mc.x,mugbounds_mc.y, true)) { 
    coin_mc.x=-1; 
    coin_mc.y=-1; 

       trace("Hit Mug"); // Is triggered when coin_mc reaches center of mugbounds_mc 
     } 
     else 
     { 
       trace("Didn't Hit Mug"); 
     } 
} 
+0

두 점 사이의 거리에 피타고라스 식을 사용할 수 있으며 두 피사체 반경의 합보다 작 으면 충돌해야합니다. 이것을 확인하십시오 : http://gamedev.michaeljameswilliams.com/2009/05/08/pythagorean-distance-between-two-points/ –

+0

헤이 여기에 코드를 붙여 넣으면 나중에 모두 선택하고 위의 작은 코드 버튼을 누르십시오. textarea 형식을 올바르게 가져올 수 있습니다. 일반적으로 찾고있는 텍스트는 다음과 같습니다. http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00001314.html – shaunhusain

답변

1

이 시도 :

addEventListener(Event.ENTER_FRAME, checkHitArea) 

function checkHitArea(e:Event) 
{ 
    a.x += 2; 
    if (a.hitTestPoint(b.x,b.y, false)) 
    { 
     // do our in-circle check 
     if((a.x - b.x) * 2 + (a.y - b.y) * 2 <= (a.width/2 + b.width/2) * 2) 
     { 
      trace("hit"); 
     } 
    } 
    else 
    { 
     trace("Didn't Hit Mug"); 
    } 
} 

내가 a와 b에 동영상 클립을 이름.

+0

감사합니다. ! :) 충돌 탐지는 훌륭하게 작동하지만 '움직이지 않게'하는 방법은 무엇입니까? 나는 아직도 그것을 유지하고 장벽으로 행동해야합니다. – Casey

+0

NM 얻었습니다 :) a.x + = 2;을 (를) 제거했습니다. 이제 충돌이 감지되면서 b가 b로 들어가는 것을 어떻게 막을 수 있습니까? 나는 그것이 다음과 같을 것이라고 생각했다. a.x = -1; a.y = -1; 히트가 발생할 때 'a'를 어느 한 방향으로 1 픽셀 뒤로 이동합니다. 분명히 내가 틀 렸어 그래서 어떻게해야하지? :) – Casey

+0

클립의 마지막으로 알려진 위치를 내부적으로 저장하고 히트가 감지되면 마지막으로 알려진 위치로 위치를 재설정하는 등의 작업을 수행 할 수도 있습니다 –