저는 Flash에서 Box2D를 사용하여 간단한 배구 게임을 구현하고 있습니다. CPU 플레이어 용 AI를 구현해야합니다. 잭이라고 불러 봅시다. 그래서 잭은 인간 선수 인 요한에게 타격을 가한 후 공이 어디로 떨어질 지 예측해야합니다. 존 그것을 칠 때공의 경로 예측 - 인공 지능
- 초기 선형 속도 (모두 X & y 방향) 볼 : 나는 다음과 같은 정보가 있습니다.
- 공이 존 안타를 때릴 때의 초기 위치. (x & y 좌표 값)
- 중력 값입니다.
- 공이 떨어지는 바닥의 y 위치 값.
- 존이 볼을 치는 각도.
- 볼은 발사체 탄도를 따릅니다.
그래서 잭은 바닥을 칠 때 볼의 위치 (x 값을) 어떻게 될지 예측할 필요가있다.
공이 발사체 궤도를 따라 가면 문제는 알려진 초기 위치에서 캐논 볼을 발사하고, 고정 중력으로 알려진 초기 속도와 착륙 지점을 예측하는 것과 같습니다. 착지 지점의 y 값은 또한 알려져있다. 공기 저항은 0입니다.
착륙 지점의 x 값을 예측하는 데 도움이되는 수학적 방정식이 있습니까? 나는 몇몇 발사체 방정식을 살펴 보았지만, 대부분은 '시간'을 변수로 사용했다. 이 '시간'변수를 포함하지 않는 솔루션이 필요합니다. 이 문제에 대한 어떤 종류의 해결 방법도 인정 될 것입니다. 고맙습니다! : 당신이 t
의 측면에서 z
(즉, 높이)에 대한 방정식이있는 경우
이것은 외부 탄도와 마찬가지로 인공 지능이 아닙니다. 나는 인공 지능이 나중에 온다고 가정한다. –
배구 경기가 어쨌든 공의 움직임을 시뮬레이션하지 않아도 되나요? 왜 AI 부분에서 같은 것을 사용하지 않습니까? 사실, 궤적을 한 번 미리 계산하고 시간 진화와 인공 지능 행동 모두에 사용하는 것이 완벽하다고 저는 생각합니다. 아마 잭의 플레이 품질을 조정할 수있는 무작위 에러를 추가하여 AI의 궤도를 악화시킬 수 있습니까? 첫 번째 지상 접촉 지점을 찾는 것은 궤적에 대한 후 처리 단계 일뿐입니다. –
@David - 네, 그렇게 말할 수 있습니다! 그러나 '게임 개발을위한 인공 지능'에 관한 대부분의 책에는 발사체 궤적을 예측하는 주제가 포함되어 있습니다. :) @Tilman - 사실, 저는이 모든 수학적 요소를 처리하는 공의 움직임과 충돌을 시뮬레이션하기 위해 Box2D를 사용하고 있습니다. 그래서 저는이 사실을 알기 전까지는 그것을 사용할 수 없습니다. 나는 당신의 제안에 감사하지만 나는 방정식을 모른다면 첫 번째 위치에서 궤도 운동을 미리 계산할 수 없을 것 같습니다. –