2013-03-04 1 views
0

드래그 가능한 객체에 대해 여러 개의 경계가있는 객체를 찾는 데 어려움을 겪고 있습니다. HitTest는 빠르게 드래그 할 때 HitTest가 실행되기 전에 오브젝트가 겹치기 때문에 작동하지 않습니다. 이 상호 작용을 파악할 수있는보다 효율적인 방법이 있는지 궁금합니다.복잡한 객체로 드래그 가능한 객체 충돌 탐지를위한 가장 좋은 방법

각 사각형 x, y, 너비, 높이를 저장하려고 시도한 다음 객체를 터치하여 플레이어가 그 방향으로 드래그 할 수 없게되는지 확인하려고합니다. 당신은 높은 속도에서 발생하는 충돌을 감지하려고하기 때문에

Here's the example as a drawing.

+0

표준 'DisplayList'에서만 충돌이 필요하면 Box2D를 사용할 필요가 없습니다. 그런데 충돌 탐지 기능이 내장 된 물리 엔진이 필요합니다. 충돌을 테스트하고 싶다면 이 객체의 범위는'draggable.bounds.intersects (blueStuff.bounds)'를 사용할 수 있습니다. – Gio

+0

감사합니다. Gio,하지만 내가 교차하는 사이트를 어떻게 읽겠습니까? – Tom

+0

나는 교차 가능한 사이트의'Vector' 또는'Array'를 가지고'Event.ENTER_FRAME' 핸들러의'for' 루프에서 체크합니다. 이는 드래그를 시작한 후에 듣기 시작할 것이고 드래그를 마치면 멈출 것입니다 . – Gio

답변

0

, 당신은 스윕 다각형 충돌 감지의 일부 양식을 사용해야합니다. 이전 프레임과 마지막 프레임 사이의 한 번만 샘플링 충돌이 발생하면 항상 실패 할 수 있습니다.

체크 아웃 스윕 충돌 감지이 간략한 설명 : 당신이 게임에서이 일을하는 경우 http://howlingmoonsoftware.com/wordpress/?p=300

또는 그냥 "충돌 감지를 휩쓸"에 대한 검색을 할 수는

, 당신은 또한을 사용하여 찾을 수 있습니다 Box2D와 같은 라이브러리는 문제의 가치있는 해결책이 될 것입니다. Box2D에서 당신이 원하는 것은 지속적인 충돌 감지입니다. http://www.box2d.org/manual.html

+0

box2d를 사용해 보았는데 완벽하게 작동하지만 멀티 터치로 작동시키지 못했습니다. 그래서 저는 처음부터 충돌을 시도하고 싶었습니다. 지금이 시점에서 내 머리 위로 조금은 증명 된 바 있습니다. – Tom

+0

너무 많은 슬픔없이 멀티 터치로 작업하는 Box2D를 얻을 수 있어야합니다. 터치를 만들 때 (마우스 다운과 같이) 마우스 조인트를 만들면 터치 이동 또는 입력 프레임에서 터치가 사라지면 (마우스 클릭과 같이) 터치를 따라갈 수 있도록 마우스 조인트 위치를 업데이트하고, 마우스 조인트를 제거해야합니다. –

관련 문제