발사 전 궤도 주위의 미사일 궤도 계산


10

Unity3D로 게임을 만들고 있습니다. 그것은 중력 전쟁 클론입니다. 플레이어와 AI 포탑은 행성에서 미사일을 충돌시키지 않기 위해 서로에 미사일을 발사합니다 (앵글과 파워 변수를 부여 함). 그러나 내 질문은 다음과 같습니다. 행성의 중력을 고려하여 AI가 미사일을 발사하기 전에 힘과 각도를 계산하도록하려면 어떻게해야합니까?

답변:


5

여러 몸을 가진 이와 같은 시스템은 혼란 스러울 것입니다. 나는 당신이 그것을 위해 방정식을 실시간으로 풀 수 있다고 생각하지 않습니다. 유전자 알고리즘을 사용하여 솔루션을 찾는 것이 가장 좋습니다.

1 : 랜덤 솔루션 (각도, 전력 쌍)의 수 (예 : 100)를 생성합니다.

2 : 이러한 솔루션을 시뮬레이션하십시오.

3 : 이것들 중 하나라도 있으면, 목표물을 때리거나 (또는 ​​충분히 가까워짐), 완료! 그렇지 않으면 계속하십시오.

4 : 최상의 10 가지 솔루션 선택 (목표에 가장 가까운 솔루션)

5 :이 10 가지 솔루션에서 각도와 힘을 임의로 조정하여 각각 10 명의 자식을 만듭니다.

6 : 이제 100 개의 새로운 솔루션이 있으며 2 단계로 돌아갑니다.

해결책을 찾을 수 없거나 검색하는 데 시간이 너무 오래 걸리는 경우 반복 횟수를 제한해야합니다.

이 방법조차도 좋은 해결책을 찾지 못할 수도 있습니다. 1. 솔루션이 존재하지 않을 수 있습니다. 2. 혼란스러운 시스템에서는 솔루션을 조금만 변경해도 결과에 큰 영향을 줄 수 있습니다.


1

샷을 그리지 않고도 시뮬레이션 할 수 있어야합니다.

그런 다음 10 장의 샷을 시뮬레이션 한 다음 10 장 중 가장 가까운 것을 촬영할 수 있습니다.


0

미사일의 궤적이 Angleand 의 입력 값을 기반으로 Power한다고 가정하면 , 역 방정식에서 풀고 정확한 답을 얻을 수 있어야합니다 .

기본적인 (의사) AI 단계는 다음과 같습니다.

  1. 임의의 Power레벨을 선택하십시오 . 합리적인 범위에 속하는 한 정확한 값이 어느 정도는 중요하지 않습니다 .
  2. (실제 경로에서 반전 된) 방정식을 풀면 정확한 값을 얻을 수 있습니다 Angle.
  3. AI Angle의 ' 난이도 ' 를 조정 하려면에서 (수정 가능한) 임의의 오프셋을 선택하십시오 .
  4. (무작위) Power및 (계산 된) 에서 플레이어처럼 미사일을 발사하십시오 Angle.

물론 두 입력 모두에 대해 AI를 임의의 수준으로 발사하면 흥미로운 결과를 얻을 수 있습니다 ...


이 방법은 당신이 가진 모든 것이 중력이 똑 바르고 일정한 바람 일 때 완벽하게 이해되지만, Angle우주를 통해 여러 중력의 몸이 흩어져있을 때 " 정확한 것을주는 방정식"에 무엇을 사용 합니까? 당김은 현재 위치에 따라 다릅니다. 일부 촬영은 불가능할 수도 있습니다.
존 맥도날드

@John-샷이 완전히 불가능한 경우 (입력 전원 선택이 좋지 않은 경우), 운동장에 심각한 문제가 있습니다. 이러한 유형의 게임에서는 플레이어 중 하나를 AI로 교체 할 수 있어야합니다. 물론, 방정식은 더 복잡해지며 (다수의 몸체에서는 매우 빠르게) 여전히 가능합니다.
Clockwork-Muse

그럴 수 있지. 그러나 방정식에 무엇을 사용할지 알고 있습니까? 이것이 바로이 질문이 만들어진 이유라고 생각합니다.
존 맥도날드

John이 옳습니다 : 내가 찾고있는 것은 그 방정식입니다.
Onofrio

@ Onofrio-죄송합니다, 관련 방정식이 없습니다 ...이 '적절하게'하기 위해서는 다중 변수 미적분학이 필요한 것 같습니다.
Clockwork-Muse

0

계산하지 않고 추측으로 시작하고 적절하게 조정하여 현실적으로 만드는 것은 어떻습니까?

내가 중력 전쟁을 할 때, 이것이 내가 한 일입니다. 반 무작위 전력으로 시작하고 그에 따라 증분으로 조정하십시오. 몇 번의 샷으로, 당신은 정말 가까이에 도착합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.