적을 같은 지점에 서게하는 간단한 방법이 있습니까?


24

그래서 : 하향식 게임에서, 나의 적들은 플레이어가 특정 거리 내에 도달하면 여전히 서서 발사합니다. 그들이 같은 방향에서 온다면, 나는 현재 적들 사이의 충돌 감지를하지 않기 때문에 모두 같은 지점에 서 있습니다 (즉, 서로 "내").

이 문제를 해결하는 간단한 방법은 무엇입니까? 어떤 형태의 충돌 감지 또는 인공 지능?


1
한 명의 적에게 자신을 제한하십시오. : P
Kylotan

답변:


18

충돌 감지는 필요하지 않지만 적에게 약간의 지능을 부여하고 서로 충돌하지 않도록해야합니다. 그것없이 충돌 탐지는 어쨌든 적을 바보처럼 보이게 할 것입니다-사람들은 서로를 피하고 일반적으로 충돌하지 않습니다.

몇 가지 간단한 행동을 위해 "몰려"를 찾으십시오.

기본적인 아이디어는 사물이 플레이어쪽으로 향하지만 가까운 장애물 (각각 다른 벽, 그런 종류의 것)에서 멀어져 야한다는 것입니다.


6
boids라고도합니다. boid를 둘러싼 간단한 규칙을 여기에서 읽으십시오. en.wikipedia.org/wiki/Boids 이러한 제한을 구현하는 것은 쉽지 않습니다.
Nailer

12

Boids 와 같은 몰려 오는 행동 에 영감을 줄 수 있습니다.

이것들은 3-4 개의 매우 간단한 규칙으로 구성되는 경향이 있으며, 올바르게 적용하면 매우 만족스럽고 "복잡한"행동을하게됩니다.

귀하의 경우 다음과 같이 시도 할 수 있습니다.

  • 분리 (적 사이의 최소 반경)
  • 응집력 (그들은 그룹으로 여행)
  • 정렬 (따라서 같은 방향으로 움직이는 경향이 있습니다)
  • 타겟팅 됨 (플레이어쪽으로 이동하는 경향이 있음)

이것은 거의 JasonD의 대답의 사본입니다. 나는 게시하기 전에 그것을 보지 않았다고 맹세합니다.
egarcia


3

협업 확산 (여기서는 훌륭한 애니메이션) 또는 다른 종류의 움직임 방지 패턴 을 확인하고 싶을 수도 있습니다 . 확산 알고리즘 자체가 적의 교차를 막을 수는 없지만 다른 제약 조건을 추가하여 불가능하거나 불가능하게 만들 수 있습니다.


전체 공개 : GD 어딘가에서 협업 확산 링크를 찾았지만 지금은 그것을 참조하는 게시물을 찾을 수 없습니다. 꽤 찾았습니다. =)
leander

이것은 매우 훌륭하지만 필요한 것보다 조금 더 복잡합니다. 어쨌든 백서를 읽지 만 더 간단한 솔루션을 구현할 수있었습니다.
Iain

2

다른 장치를 통한 이동을 허용하지 않으면 어떻게됩니까? 조만간 필요할 것 같습니다. 현재 경로가 장치에 의해 차단 될 때마다 경로를 조정하여 그 주위를 이동하십시오.


2

Craig Reynold의 웹 사이트 에는 조향 및 무리를 짓는 동작에 대한 참조 가 있습니다 . 그것들은 구현하기가 비교적 간단하지만 멋진 출현 행동을 일으킬 수 있습니다.


이것은 본질적으로 다른 2와 동일한 대답이지만 링크의 경우 +1입니다. 해당 웹 사이트는 정말 좋은 참조입니다.
AShelly

1

다른 모든 답변은 더 나은 결과를 생성하지만 완전한 그룹화를 피하는 가장 저렴한 (?) 방법은 원래 계산 된 이동 벡터의 25 % 인 임의의 벡터를 추가하여 객체가 일반 얼룩 그룹에서 약간 튀어 오르는 것입니다. . 그것은 서로를 완전히 분리 시키지는 않지만 달성하려는 목표에 따라 이것이 적절하다는 것을 알았습니다. 주위에 원을 그리면 개체가이 방법으로 그룹화 될 수 있지만 시간이 지남에 따라 확산되는 경향이 있습니다.

이 방법을 보여주기 위해 몇 년 전에 만든 작은 게임 렛이 있습니다 : http://deleter.phatcode.net/index.php?page=projects&p=4


1

사람들은 항상 좋은 결과를주기 때문에 항상 구멍을 내지 만, 구멍을 구현하는 것은 특정한 목적을 위해 과잉 일 수 있습니다. 과거에는 작은 원 내에서 대상 위치를 무작위로 지정하여 매우 좋은 결과를 얻었습니다.

예를 들어, 유니티 I 내장 데모 I에 대한 그 명령을 사용 Random.insideUnitSphere몰려 puffballs을


하나는 내가 여기에서 찾을 수 있습니다 (중복하지 않는 아마 조금 더 보장),이 전략의 또 다른 예를 동의 RTS 게임에서 "정리합니다"단위
MichaelHouse

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