A Unity-ben hogyan lehet megvalósítani az útkereső mesterséges intelligenciát egy 2D platformer játékban?


A legjobb válasz

2D platformer (oldalról oldalra) legegyszerűbb módja a gondolkodásnak ennek érdekében a játékosok átalakulnak, és a Sprite Renderer így és a Fordítás sebessége is így lapozhat. Az ellenség számára egy platformerben valójában nincs útkeresés. Ilyen például:

[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));

}

Válasz

Az egyik projekt, amin dolgoztam, amikor volt időm (= munkahelyek között: d) nagyon klasszikus, régi iskola alacsony szintű 2d volt sprite-alapú játékmotor, platformereknek és hasonlóknak megfelelő. Csak azért, mert.

Valójában nagyon szórakoztató dolog megbirkózni, megírva a saját 2d motorját, elég kicsi ahhoz, hogy elkészíthesse néhány hónapon belül egyedül dolgozhat Több mint év, tehát nem olyan, mint egy nagy 3d motor, ahol ez egy pite az égen projekt, ahol soha nem lehet vele játékot készíteni. Még mindig meglehetősen ésszerű, ha kicsit anakronisztikus a saját 2d motorod gurítása.

Leginkább a játékmotorom (C ++ nyelven írva, a sima Win32 tetején) a következőkből állt: - grafika osztály (alacsony szintű vászon ahol vonalak, sokszögek vagy nyers pixelek rajzolhatók) - sprite class, animációk és sprite rajzolásához a kép darabjainak összekapcsolásával, valamint bitképes szöveg - tileet class, tileet background kezelése - UI osztály hierarchia egyszerű komponensekkel ( gombok, panelek, listbox stb.) - egy egyszerű fizikai motor (semmi divatos, csak valami, ami lehetővé teszi a tárgyak mozgatását bizonyos sebességgel és az ütközés kiváltását más tárgyakkal és a tájjal) - egyszerű hangosztály - a fő játék hurok / játék állapotgép, amely mindezt összekapcsolta, egér és billentyűzet üzeneteket küldött, eseményeket küldött a felhasználói felület objektumaira, az összes spritet renderelte, az összes fizikai objektumot frissítette stb. .. ez alapvetően a játszma, meccs. Ha meg szeretné érteni, hogyan működnek az alapjátékok (és implicit módon a játékmotorok), koncentráljon erre a területre, a játék állapotának, a játékesemények kezelésének és a fő frissítési / rajzolási ciklusnak a kezelésére. - a platformfüggő Win32 rajzkód csak egy kis fájlban.

Írtam néhány fájl konvertert, egy csempe szerkesztőt és egy animációs szerkesztőt .NET / C ++ / CLI használatával. A munka nagy része a sprite és a fizika órák, valamint a sprite szerkesztő írása volt.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük