Jak w Unity zaimplementować sztuczną inteligencję do odnajdywania ścieżki w platformówce 2D?


Najlepsza odpowiedź

W przypadku platformówki 2D (z boku na bok) najprostszy sposób myślenia aby to zrobić, gracze przeobraziliby się i sprawiliby, że Sprite Renderer odwróciłby się w ten sposób, a prędkość Tłumacza również w ten sposób. W platformówce naprawdę nie ma ścieżki dla wroga. Przykładem może być:

[SerializeField] Transform player;

[SerializeField] SpriteRenderer rend;

[SerializeField] float speed;

void Update()

{

if(player.pos.x < transform.position.x)

{

renderer.flipX = true;

transform.Translate(new Vector2(-speed, 0f));

}

else

{

renderer.flipX = false;

transform.Translate(new Vector2(speed, 0f));

}

Odpowiedź

Jeden z projektów, nad którym pracowałem, kiedy miałem czas (= między pracą: d) był bardzo klasycznym, oldschoolowym, niskim poziomem 2d silnik gry oparty na spriteach, odpowiedni dla platformówek itp. Tylko dlatego.

Pisanie własnego silnika 2D to całkiem fajna sprawa, jest na tyle mały, że możesz to zrobić pracuj samodzielnie w ciągu kilku miesięcy od lat, więc to nie jest jak wielki silnik 3D, w którym jest to placek na niebie, w którym nigdy nie można zrobić z nim gry. Wciąż jest całkiem rozsądne, jeśli trochę anachroniczne, aby rozwijać swój własny silnik 2D.

Głównie mój silnik gry (napisany w C ++, oprócz zwykłego Win32) składał się z: - klasy grafiki (płótno niskiego poziomu gdzie można rysować linie, wielokąty lub surowe piksele) - klasa sprite, do rysowania animacji i spriteów poprzez łączenie elementów z obrazka, a także do rysowania tekstu bitmapowego - klasa tileset, do zarządzania tłami tileet - hierarchia klas UI z prostymi komponentami przyciski, panele, listbox itp.) - prosty silnik fizyczny (nic nadzwyczajnego, po prostu coś, co pozwala na poruszanie się obiektami z pewną prędkością i wywołuje kolizje z innymi obiektami i scenerią) - prosta klasa dźwiękowa - gra główna maszyna stanu pętli / gry, która połączyła to wszystko razem, wysyłała komunikaty myszy i klawiatury, wysyłała zdarzenia do obiektów interfejsu użytkownika, renderowała wszystkie spritey, aktualizowała wszystkie obiekty fizyki itp. to jest w zasadzie „serce” gra. Jeśli chcesz zrozumieć, jak działają podstawowe gry (i niejawnie silniki gier), skup się na tym obszarze, zarządzaniu stanem gry, wydarzeniami w grze i główną pętlą aktualizacji / losowania. - zależny od platformy kod rysunkowy Win32 w małym pliku

Napisałem także kilka konwerterów plików, edytor zestawu klocków i edytor animacji, używając .NET / C ++ / CLI. Naprawdę większość pracy polegała na pisaniu zajęć duszka i fizyki, a także edytora duszków.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *