Gamestudios Physik - Häufig gestellte Fragen

F: Wie kann ich mehr über Physik lernen?

A: Workshop 19 des Tutorials bietet eine Einführung in die Physikfunktionen. Schauen Sie sich auch earthball8.c und physXtest.c als Beispiele einfacher Physikanwendung an. Das Skript car.c ist beispielhaft für Fahrzeug-Physik.

F: Wie bewege ich eine Physik-Entity?

A: Weisen Sie ihr eine Geschwindigkeit, Kraft oder ein Drehmoment zu, oder benutzen Sie pXent_move. Versuchen Sie nicht, ihre Position oder Ausrichtung direkt zu verändern, etwa per Einstellen der x,y,z-Koordinaten oder über c_move oder c_rotate - das funktioniert nicht bei Physik-Entities.

F: Meine Objekte vibrieren heftig.

A: Physik-Engines fürgen dynamischen Objekten eine geringe Vibration hinzu. Das kann sich dann bemerkbar machen, wenn die Physikeigenschaften wie Masse oder Elastizität schlecht proportioniert sind. Um Objekte automatisch schlafen zu legen, können Sie auch pX_setautodisable verwenden.

F: Meine Objekte fallen durch den Boden oder dringen in Wände ein.

A: Dies geschieht, wenn Objekte oder Wände kleiner sind, als die Distanz, die von einem Framezyklus abgedeckt wird. Machen Sie sie entweder größer oder benutzen Sie continous collision detection.

F: Ich lassen einen Ball über einen aus Modellen bestehenden Parcours rollen. Manchmal springt der Ball seltsam oder er stoppt da, wo er die Modelle berührt.

A: Das liegt an den kleinen Lücken zwischen den Modellen. Lassen Sie diese ein wenig überlappen oder Sie stellen die Eindringtiefe neu ein (pXent_setskinwidth).

F: Nach dem Aufstellen von Einschränkungen läuft mein Game sehr langsam. Was ist falsch?

A: Die eingeschränkten Objekte dringen beim Erstellen ineinander ein oder die Beschränkungsparameter sind nicht korrekt eingestellt.

Q: Wie kann ich eine Kette oder ein Seil machen?

A: Benutzen Sie Segmente fester Länge mit PH_BALL Gelenken. Um das Seil auf- oder abzurollen, fügen Sie Segmente am Ende hinzu oder entfernen Sie sie. Für einfache Seile ohne Segmente benutzen Sie ein PH_ROPE Gelenk.

Q: Wie erstelle ich eine Gliederpuppe (ragdoll)?

A: Verwenden Sie PH_CAPSULE Entities für die Glieder, verbinden Sie sie mit PH_HINGE Gelenken, und benutzen Sie ent_bonerotate und ent_bonemove zum Setzen der Bones gemäß der Positionen und Eulerwinkel der Glieder. Es gibt ein Beispiel auf dem User-Forum.

F: Wie kann ich die Bewegung auf zwei Dimensionen beschränken?

A: Verwenden Sie pXent_setbodyflag mit NX_BF_FROZEN_POS_Z, um die Bewegung auf die x und y Achsen zu beschränken.

F: Wie kann ich die Kollision eines bestimmten Physik-Objekts mit einem anderen Objekt vermeiden?

A: Setzen Sie beide Objekte mithilfe von pXent_setgroup auf dieselbe Gruppe. Objekte derselben Gruppe kollidieren nicht miteinander.

Q: Warum kollidieren c_move oder c_trace nicht mit meiner Physik-Entity - sogar nachdem ich sie unregistriert habe?

A: pXent_setgroup setzt die Entity-group auf die angegebene Nummer. Abhängig von den Kollisionsgruppen, die Sie verwenden, müssen Sie sie auf einen anderen Wert oder zurück auf 0 setzen, um c_trace oder c_move mit der Entity zu verwenden.

Siehe auch :

Physik

► latest version online