ПредишенСледващото

Двигателят на физиката поглед отвътре

В тази статия ще разгледаме използването на физиката, за да се симулира хвърляне на снаряди (да, точно като в Angry Birds). Ние се обърне внимание на принципите на използване на 2D физика, както и създаването на физически тела, импулси и сили. Не забравяйте да обърнете внимание на най-популярната игра двигатели за 2D симулация на физически светове.

Функции физика двигател

Защо трябва да използвате някои физика двигател? И това, което е наистина?
B
Обща физика двигател е много полезен. Тя ви позволява да направите за нас две важни неща:

  • Откриване на сблъсък (катастрофа) между двете игрови обекти;
  • Имитации сили и движения в резултат на сблъсъка.

сблъсък откриване

Играта не би било много интересно, ако вашият герой щеше да падне на пода, не вземайте една единствена стъпка или скок. Или, ако кракът ти е характерът би преминал през враг, който искате да отстраните. сблъсък откриване позволява много точно определяне на взаимодействието на двата органа.

имитация сила

Какво трябва да се случи след сблъсъка? Могат да се появят различни явления: на характера може да скочи, да скочите всяка друга цел на играта, а може би просто ще се движи във всички посоки. Всичко това се прави от двигателя зад кулисите. Но на сила, която може да симулира физиката на двигателя не се ограничават до сблъсъци. Има понятия като гравитацията и инерцията. Те могат да се прилагат за органите, дори ако те не са се сблъскали. Също така, тези сили могат да повлияят на действията, които се случват в играта, героите на движение и дори на самия свят.

Двигателят на физиката поглед отвътре

Така че, нека да разгледаме накратко физичния енджин на устройството, но първо да насочим вниманието си към техните видове и да изберете според нашите нужди.

Избор на физическото двигателя

В този момент вие имате две възможности. И двата варианта имат предимства и недостатъци:

  1. Искам да използвам съществуващия физика двигател;
  2. Напишете изпълнение (с предпочитание и куртизанки).

Използване на съществуващ двигател

Има някои големи готови варианти. Един от най-популярните двигател за 2D игри със сигурност е, Box2D. Той първоначално е бил написан на C ++, но е пренесен до почти всички популярни езици за програмиране. Друг известен двигателя е достатъчно Chipmink 2D. който се използва като основна рамки като Cocos2d.

Писане вашия двигател

В някои игри, използването на съществуващите решения - ненужен лукс. Фактът, че физиката на двигателя използва много хубав спомен, и непретенциозни игри могат да предизвикат излишна тежест, която можеше да бъде избегната. Съгласете се, в проста платформинг или Arkanoid ние не трябва да се изчисли позицията на контакт с пиксел точност. Ресурси, които трябва да прекарат изчисляването на такъв конфликт, ние можем да прекарват на друго място, където би било по-подходящо.

Да, да създадете своя собствена физика двигател ще ви даде по-голяма гъвкавост, отколкото готовия продукт. Но не забравяйте, че този процес е доста строга, а ти, в крайна сметка, може да реализира нещо по-сложно, отколкото начин това е направено в завършен двигател.

Преди да се помисли за свойствата на физиката и моделиране подробности, нека да погледнем какво се случва във всяка игра рамка на подход "главата":

Двигателят на физиката поглед отвътре

Един типичен игра цикъл за всеки кадър се проведе четири стъпки в следния ред:

Имайте предвид, че предоставянето на кадрите се появява след физика симулация. Тази цел, разбира се, не е без значение.

Размер, определен кадър срещу различна

Нека поговорим за скоростта на кадрите: фиксирана (фиксирана ставка) и променливо (рамка зависи скоростта). актуализация метод се нарича веднъж рамка сцената игри. Ако вашият начин на метод физика симулация се нарича от актуализацията, тогава вашия физически свят ще зависи от скоростта на кадрите. Това може да доведе до нереалистични поведение на физическите си тела. На IOS, този ефект се постига чрез използването на Булева usesPreciseCollisionDetection собственост. Но какво да кажем за други операционни системи?

Помислете кодовия фрагмент:

Този код е предназначен за компенсиране на проблемите с стойността на отклоненията. Всъщност това ще се случи, ако в хода на играта ви се обади. След това можете да с помощта на такъв алгоритъм, за да се възстанови стойността на отклоненията (за играта с 60 кадъра в секунда).

Това всъщност е първата стъпка в концепцията за работата на физическа машина. Да, предишната част от код ще направи нашата симулация по-стабилна, но всички проблеми, той не се решават. За това ние трябва да се премахне функцията физика повикване симулация от серията за оказване на игра сцени, и след това да създадете определен цикъл. По време на този цикъл и ще продължи физика симулация. Например, ако вашата игра е предназначена за работа в 60 кадъра в секунда, а след това да настроите симулация физика на честотата на 60 пъти в секунда. Това разделение на отговорностите ни позволява да се елиминира много проблеми.

Обобщавайки, искам да кажа, че след като сте решили да се напише физика двигател - да бъде съвестен и да го направя така. В тази първа част на тази статия не свършва. В следващата част ще говорим за физически лица и техните свойства, както и спомена типичните ограничения на физически двигатели.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!