A fizikai motor belső nézet

A fizikai motor belső nézet

Ebben a cikkben megnézzük a használata a fizika, hogy szimulálja a dobás lövedékek (igen, csak úgy, mint az Angry Birds). Figyelünk használatának alapjait 2D fizika, valamint a teremtés fizikai testek, impulzusok és erők. Ne felejtsük el, hogy vegye figyelembe a legnépszerűbb játék motorok 2D szimuláció a fizikai világban.







Funkciók fizikai motor

Miért kell használni valamilyen fizikai motort? És mi ez valójában?
B
Általános fizikai motor nagyon hasznos. Ez lehetővé teszi, hogy nem értünk két fontos dolgot:

  • Kimutatása ütközés (ütközés) a két játék tárgyak;
  • Utánzás erők és mozgalmak eredményeként az ütközés.

ütközésészlelés

A játék nem lenne nagyon érdekes, ha a karakter esett volna át a szót, ne vegye egy lépést, vagy ugrik. Vagy ha az egyik lábad a karakter volna áthaladt az ellenség, hogy szeretné rúgni. Ütközésellenőrzés lehetővé teszi a nagyon pontosan meghatározni a kölcsönhatás a két test.

utánzás erő

Mi történjen az ütközés után? Előfordulhatnak különböző jelenségek: a karakter tud ugrani, ugrani bármely más játék célja, és talán akkor csak mozog bármely irányba. Mindez úgy történik, hogy a motor a színfalak mögött. De a hatalom, amely képes szimulálni a fizikai motor nem korlátozódnak ütközések. Vannak olyan fogalmak, mint a gravitáció és a lendület. Ők lehet alkalmazni, hogy a testek, akkor is, ha még nem találkoztam. Továbbá, ezek az erők befolyásolják az intézkedéseket, amelyek előfordulnak a játékban, a hősök a mozgás és maga a világ.

A fizikai motor belső nézet

Nos, nézzük meg röviden a készülék fizikai motort, de először a figyelmünket, hogy a faj, és kiválasztani a szükségleteink szerint.

Kiválasztása fizikai motor

Ezen a ponton két lehetősége van. Mindkét változat egyaránt előnyei és hátrányai:







  1. Meglévő fizikai motor;
  2. Írjon végrehajtás (a preferencia és kurtizánok).

Meglévő motor

Van néhány nagy kész lehetőségeket. Az egyik legnépszerűbb motor 2D-s játékok minden bizonnyal, Box2D. Eredetileg C ++ nyelven íródott, de már portolták szinte minden népszerű programozási nyelveket. Egy másik ismert motor kellően Chipmink 2D. amit használnak, mint a fő keretek, mint Cocos2d.

Írás a motort

Néhány játék a meglévő megoldások - felesleges luxus. Az a tény, hogy a fizikai motor használ sok értékes memóriát, és szerény játékok okozhatnak szükségtelen terhet jelent, ami elkerülhető lett volna. Elfogadom, egyszerű platformer vagy Arkanoid nem kell számítani a kapcsolati helyzetben pixel pontossággal. Erőforrásokat kell tölteni a számítás egy ilyen konfliktus, tudjuk tölteni máshol, hol lenne a megfelelőbb.

Igen, hozzon létre saját fizikai motort kapsz nagyobb rugalmasságot a kész terméket. De ne felejtsük el, hogy ez a folyamat meglehetősen szigorú, és akkor, a végén, akkor észre valamit bonyolultabb, mint ahogyan ez történik a kész motort.

Mielőtt úgy a tulajdonságait a fizika és a modellezés adatai, nézzük meg, hogy mi történik az egyes játékkeret a megközelítés „fej”:

A fizikai motor belső nézet

Egy tipikus játék ciklus minden egyes képkocka tartott négy lépést, a következő sorrendben:

Megjegyezzük, hogy a keret rendering után történik fizikai szimuláció. Ez a sorrend természetesen nem mentes értelme.

A fix frame rate ellen változó

Beszéljünk a frame rate: fix (fix) és változó (frame függő mértékben). frissítés módszer az úgynevezett egyszer keret szerencsejáték jelenet. Ha az eljárás fizikai szimulációt a metódust a frissítést, akkor a fizikai világ függ a frame rate. Ez ahhoz vezethet, hogy irreális magatartás fizikai testek. Az iOS, ezt a hatást érjük el, egy logikai tulajdonság usesPreciseCollisionDetection. De mi a helyzet a többi operációs rendszer?

Tekintsük a kódot:

Ez a kód célja, hogy kompenzálja a problémákat a időkülönbségekkel. Tulajdonképpen ez lesz a helyzet, ha a játék során, hogy hívtál. Akkor a segítségével egy ilyen algoritmus helyreállítani a időkülönbségekkel (a játék 60 FPS).

Ez tulajdonképpen az első lépés a fogalom a munka fizikai motort. Igen, az előző kódrészlet teszi a szimuláció sokkal stabilabb, de a probléma, hogy nem oldja meg. Ehhez el kell távolítani a hívás fizika szimuláció a sorozatból rendering játék jelenetek, majd hozzon létre egy fix ciklust. E ciklus alatt fog futni fizikai szimuláció. Például, ha a játék célja, hogy működik a 60 képkocka másodpercenként, akkor állítsa be a fizikai szimulációt gyakoriságának a másodpercenként 60-szor. Ezt kell osztani a felelősséget lehetővé teszi számunkra, hogy megszüntesse egy csomó probléma.

Összefoglalva, azt akarom mondani, hogy ha egyszer már úgy döntött, hogy írjon egy fizikai motor - lelkiismeretes és csinálni. Ebben az első részben ezt a cikket véget ér. A következő részben fogunk beszélni a fizikai testek és azok tulajdonságait, valamint beszélve a tipikus korlátai fizikai motor.




Kapcsolódó cikkek