2013-03-05 4 views
0

나는 현재 타워 수비를 프로그래밍하고 있으며, 미사일은 데스크탑 타워 방어 에서처럼 적을 놓치거나 공격하는 대신에 적을 놓치는 경향이있다. 이것은 적에게 어떤 리드도주지 않고 쏘기 때문에 적의 위치에 도달 할 때까지 적은 이미 3-5 픽셀 떨어져 있습니다. 이 문제를 해결하는 방법을 찾아 보았고 문제를 해결하기 위해 벡터 수학을 사용해야 함을 발견했습니다. 예를 들어이 사이트 http://www.helixsoft.nl/articles/circle/sincos.htm에는 호밍 미사일을 프로그래밍하는 방법에 대한 몇 가지 코드가 있지만, 이것이 내 문제를 해결하는 데 필요한 수학인지 여부는 불확실합니다.미사일 길 찾기를 올바르게 프로그래밍하는 방법은 무엇입니까?

"command guidance"라고하는 것이 좋지만 2d 게임에서 어떻게 작동하는지 알지 못하는 것 같습니다.

그래서 지금은 무엇을 해야할지에 대해 꽤 혼란 스럽습니다. 모든 방향 /지도는 많이 감사 할 것입니다.

답변

1

고정 된 상태에서 적을 정확히 밟을 수있는 코드가있는 것처럼 들리며, 미사일이 이동하는 동안 이동한다는 사실 만 문제입니다.

원수가 걸음을 내릴 때마다 또는 미사일이 움직일 때마다 현재 위치에서 미사일을 새 위치로 간단히 "다시 시작"하지 않는 이유는 무엇입니까?

이것은 미사일이 도착할 시점에 적의 위치를 ​​예측하기보다는 비행 중 적의 미사일을 "귀환 (homing)"하게 만듭니다.

차이점은 "원점 복귀"가 매번 히트로 이어지는 반면, 예측 접근법은 미사일이 비행 중일 때 도보 방향을 전환함으로써 적들이 미사일을 피할 수있게합니다. 어느 쪽이 좋을지는 디자인 결정이지만 일반적인 타워 방어 게임은 원점 복귀 방식을 사용한다고 생각합니다.

1

그 기사가 정확히 필요한 것입니다. 호밍 미사일에 대한 섹션을 읽고 역 탄젠트 함수를 사용하십시오.

+0

나는 함수가 어떻게 미사일의 x와 y 위치를 증가시킬 수 있는지 이해하지 못한다. x + = length * fcos (angle)과 y + = length * fsin (angle)은 x 위치와 y 위치를 어떻게 증가시킬까요? 그냥 나에게 많은 의미를주지 않습니다. 기본적으로, 나는 모든 진드기를 증가시키기 위해 미사일 위치가 필요하며, 길이 * fsin (각도) = y와 lenght * fcost (각도) = x에 대해 이동 한 움직임의 길이를 정확히 모르겠습니다. – GayLord

+0

나는이 기사 전체를 읽고 실제로 예제를 사용하는 것이 좋습니다. 게임 개발에서 문제와 해결책이 반복해서 등장합니다. –

+0

간단히 말하면, cos (angle)은 적이 x 방향으로 얼마나 멀리 떨어져 있는지를 나타내고 sin (angle)은 적이 y 방향으로 얼마나 멀리 떨어져 있는지를 반환합니다. cos (angle)과 sin (angle)은 [0, 1] 범위의 값을 반환하므로 속도를 곱할 필요가 있습니다. –

1

적의 방향을 "예측"해야합니다. 직선을 따라 움직인다 고 가정하면 타워목표 인의 속도와 방향을 관찰해야합니다.

의이 타워는 점에있다 (0,0)을 가정 해 봅시다 당신은 당신의 대상이 명 관찰 수집 : t=1에서

  • (100, 100)
  • (90, 95) t=0에서을

속도 : 먼저이 두 지점 사이의 거리를 계산 :

d = sqrt((x2-x1)^2 + (y2 - y1)^2) = 
    = sqrt(10^2 + 5^2) = sqrt(125) = 11.18034 
형상의 비트 :

그래서 대상의 속도는 (당신이 한 시간 단위로 간격 동등한 관찰했다 이후)

각도 11.18034입니다.궤도의 기울기는 다음과 같습니다

m = (y2 - y1)/(x2 - x1) = 
    = 5/10 = 0.5 

그래서 각도는 다음과 같습니다

y - y1 = m * (x - x1) 
==> y = 0.5 * (x - 100) + 100 = 
     = 0.5 * x + 50 

모든 : 두 점과 기울기와

theta = arctan(0.5) = 0.463648 radians (or 26.56 degrees) 

, 당신이 당신의 목표의 궤적을 추정 할 수있다 남아있는 것은 미사일이 표적을 가로 챌 수있는 지점을 계산하는 것입니다. 이를 위해서는 미사일의 속도를 알아야하고 "최적"차단 점을 계산해야합니다. 이 두 번째 단계를 너에게 맡길 께. 그것은 단순한 기하학이다. (그리고 약간의 창의력)

관련 문제