2014-02-21 5 views
0

그래서 mainEngine 클래스의 무비에 hookLine이라는 무비 클립이 추가되었습니다. 이 비어있는 무비 클립은 내 fisherman 무비 클립에 연결되어 있으며 내 playerHook 무비 클립으로 연결됩니다. 그것은 그래서 같은 무대에 연결된 추가 된 :Graphics.lineTo/curveTo를 사용할 때 HitTest가 올바르게 작동하지 않습니다

mainEngine 기능 루프에서 :

playerHookLine(); 

그런 기능 : 내가 그러나 hitTest하려고 할 때마다

private function playerHookLine():void 
    { 

     //Add hook line to fisherman and playerhook 
     hookLine.graphics.clear(); 
     hookLine.graphics.lineStyle(1); 
     hookLine.graphics.moveTo(fisherman.x, fisherman.y); 
     hookLine.graphics.curveTo(playerHook.x, playerHook.y, mouseX, mouseY); 

    } 

지금 나는 데 문제가 currentShark이라는 Move Clip이있는 hookLine hitTest가 작동하고 트레이스를 얻지 만 측에 내 후크 라인을 휘게 할 때 정확하지는 않으며 currentShark은 자동으로 hitTests와 함께 제공됩니다. 내 흔적. 그래서 기본적으로 상어는 실제 라인 그래픽과 접촉해야합니다. 상어가 무대에 추가되면 바로 등록됩니다.

이유는 무엇입니까? 여기

는 그러나 hitTest 기능이 얼마나입니다 :

private function checkPlayerHitShark():void 
    { 
     //Loop through all sharks 
     for (var i:int = 0; i < aSharkArray.length; i++) 
     { 
      //Get current Shark in i loop 
      var currentShark:mcShark = aSharkArray[i]; 

      //Check if shark is hittest with Hook 
      if (currentShark.hitTestObject(playerHook) || currentShark.hitTestObject(hookLine)) 
      { 
       trace("Hook Hit Shark"); 
       trace("hit LINE"); 
       removePlayerLive(); 

       //Destroy player 
       playerHook.destroyPlayerHook(); 
       hookLine.destroyHookLine(); 

       //Remove shark from array 
       aSharkArray.splice(i, 1); 

       //Add new Hook to stage 
       stage.addChild(playerHook); 
       stage.addChild(hookLine); 
      } 


     } 

    } 

답변

1

가능성이 상어와 낚시 줄의 경계 상자가 충돌하는 것보다 더. 구부러진 낚싯줄이 왼쪽이나 오른쪽으로 움직이면 바운딩 박스는 낚싯줄 자체의 너비와 높이와 같습니다. 프로젝트를 열고 SWF로 제작 한 다음 Flash Player에서 SWF를 열고 Ctrl + E를 누르거나 창 상단의보기를 클릭하고 "다시 그리기 영역 표시"를 선택하십시오. 무대에 다시 그려지는 경계 상자는 빨간색으로 표시됩니다.

당신이 찾고있는 것은 상어와 낚싯줄의 비트 맵에서 픽셀 레벨 히트 감지입니다. BitmapData에는 몇 가지 매개 변수가 필요한 hitTest라는 메서드가 있습니다.

당신은 여기 링크에서 마이크 챔버가 쓴 기사에서 픽셀 수준의 히트 감지 우수한 도움을 찾을 예정

: BitmapData.hitTest에 대한 문서는 여기에서 찾을 수 있습니다 http://www.mikechambers.com/blog/2009/06/24/using-bitmapdata-hittest-for-collision-detection/

: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html

공개 메소드 목록을 찾으십시오.

+1

내가 말하고자하는 것은 프로그램을 .SWF 파일로 게시하고 Flash Player에서 여는 것입니다. 플레이어 자체는 맨 위에 메뉴가 있고보기 메뉴가 표시됩니다.이 메뉴에는 다시 그리기 영역 표시가 있습니다. 내 글을 편집하려고합니다. – E10

+0

모든 정보를 제공 한 사람에게 고마워요. 정말 감사. 또한 당신은 내가 그것을 움직일 때마다 거대한 직사각형 박스를 가지고 있습니다. – Nathan

+0

오, 알았어. 알았어. 나 아빠가 나에게 보낸 기사를 읽으십시오. 그 지역을 단지 hookLine으로 줄일 수 있을까요? – Nathan