2013-02-26 2 views
0

사이드 스크롤러 슈팅 게임을 만들고 있습니다. 현재 캐릭터가 오른쪽으로 수평으로 촬영하고 있습니다. 나는 그를 스크린 어디에서나 찍히고 싶다.내 안드로이드 게임에서 atan2를 사용하는 방법

나는 총알이 발사되는 각도를 알아 내기 위해 atan2를 사용해야한다는 것을 알고 있지만 게임에 그것을 구현하는 방법을 혼란스럽게합니다.

제 질문은 어떻게 화면상의 터치 좌표를 atan2로 호출합니까? 내 발사 명령 코드 나 발사체의 클래스에이 코드를 배치합니까? 마지막으로 속도를 높이기 위해 다른 atan2를해야합니까?

답변

0

먼저 당신은 당신의 플레이어의 벡터를 필요

P = (A, B)

그리고 당신의 촬영 포인트

T = (x, y)를

이을의 위치 그런 다음 P에서 T까지 벡터를 얻습니다 (x - a, y - b).

각도 = ATAN2 취함으로써 (Y-B를, X-A) 거기에서

당신이 당신의 촬영을 구현하는 방법이 달라집니다.

그렇게

내가 속도를 다른 ATAN2을 어떻게해야합니까, 모든 ATAN2가하는이 각도을 발견하고, 반복하기

당신이 발사체에 이동해야 할 것인지 여부에 따라 달라집니다 각도에 따라 다른 속도. 실제로, 당신은 당신이 발사체를 회전시키는 경우에만 각도가 정말로 필요합니다. 그렇지 않으면 당신은 벡터를 따라 그것을 움직일 수 있습니다 (만약 원이라면 어떤 방향 으로든 상관 없습니다!)

+0

오, 나중에 그들은 둥근 것입니다하지만 지금은 그냥 사각형 픽셀입니다. 나는 당신이 만지는 곳의 좌표를 요구하는 방법에 대해 여전히 약간 혼란 스럽다. – user2106015

0

당신은 ' 삼각법이 필요하지 않으며 느리고 부정확하며 잘못된 (+/-) 사례가 가득하기 때문에이를 사용하지 않아야합니다.

선형 대수학으로 필요한 모든 것을 할 수 있습니다. 각도가 아닌 벡터를 사용하십시오.