본문 바로가기

무언가 만들기 위한 지식/Action Script

hitTest 관련

hitTest는 충돌을 감지하는 코드이다.
hitTest또한 매개변수에 따른 두가지 방법이 있다.

(1) a.hitTest(b)
(2) a.hitTest(x,y,shapeFlag)


(1)의 경우 두개의 무비클립을 비교할때 사용되고 (2)의 경우는 무비클립과 점을 비교할때이다.
여기서 (1)의 경우 무비내의 shape에 따라서 충돌테스트를 하는 것이아니라 무비클립의 범위에 따라 체크를 한다. 즉 사각형 대 사각형 체크밖에 되지 않는다.

(2)의 경우에는 점과 무비클립을 비교하는데 shapeFlag(boolean형)을 통해 모양으로 판단할 것인지 영역으로 판단할 것인지 결정할 수 있다. true이면 모양으로 확인할 수 있고, false이면 영역으로 판단한다.
영역보다는 모양으로 하는 것을 주로 사용하게 된다.

다음은 히트테스트(1)의 경우를 사용해 본 경우이다. cir과 cirBar라는 두개의 무비클립을 테스트한다.


같을 경우(true값이 반환될 경우) 원 안으로 집어 넣는다.



아래의 코드는 무비클립과 점과의 히트테스트이다. 겹친다면 Hit 출련 아니면 Not Hit를 출력하게 된다.
true값을 통해 shape영역과 점을 비교하도록 설정하였다. true를 false로 하면 영역으로 구분하게 된다.
사실 true보다 false가 hitTest영역이 더 커지게 된다. true를 이용하면 좀 더 세밀하게 조작이 가능하다는 것이다.




이런 히트테스트를 통하여 다양한 이벤트 구현이 가능하다.