2012-03-13 2 views
1

게임에서 회전 된 이미지에서 충돌을 감지하려면 어떻게해야합니까? 저는 소행성 게임을 만들고 있습니다. 소행성을 회전 된 우주선과 적절하게 충돌시키는 방법을 알아 내지 못합니다.회전 된 이미지의 충돌 감지

답변

2

회전 된 개체가 Shape 인터페이스를 구현하는 개체 인 경우 메서드를 유용하게 구현할 수 있습니다.

+0

개체가 이미지이므로 불행히도 작동하지 않습니다. – user1150769

+0

아마도 기존의 'Shape'을 사용하여 이미지의 충돌 경계를 근사시킬 수 있습니다. – trashgod

+1

@ user1150769 더 나은 도움을 받으려면 [SSCCE] (http://sscce.org/) – mKorbel

1

페인트()에서 움직이는 이미지를 그릴 준비가되면 대상 지점의 픽셀 색상을 확인하고 대상 개체의 색상을 찾습니다. 모션 이미지와 대상 객체는 물론 다른 색상이어야합니다.

0

소행성의 충돌 경계에 정확히 무엇을 사용하고 있습니까?

가장 간단한 것은 모든 것을 원으로 활용하고 원 - 서클 충돌 감지 (Google에만 해당)를 구현할 수 있다는 것입니다. 이미지가 원과 비슷하지 않은 경우 시각적으로 즐겁지 않을 수 있습니다.

다른 회전 사각형과 충돌하는 회전 사각형이있는 경우 Separating Axis Theorem for 2D Rotated Rectangle Collision을 사용하는 알고리즘을 구현해야합니다.

또 다른 옵션은 픽셀 완전 충돌 감지로 Chuck이 말한 것일 수 있습니다. 빠른 검색으로이 포럼이 나타났습니다 post. 그러나이 방법의 성능은 이미지의 크기에 따라 저하됩니다.

1

픽셀 완전 충돌 감지, 즉. 이미지 간의 충돌 감지는 일반적으로 효율적으로 수행하기가 어렵습니다. 이러한 이유로 일반적으로 기존의 최적화 된 라이브러리를 사용하는 것이 좋습니다.

회전 된 이미지도 지원해야하므로 PoxelColl을 권장합니다. 스케일링 및 회전과 같은 기본 변환은 물론 완벽한 픽셀 충돌 감지 기능을 지원합니다. Java와 호환되는 Scala 포트를 제공합니다.