entity | registrierter Entity-Pointer (Actor) |
vecSpeed | Geschwindigkeitsvektor |
vecPos | Position an der die Geschwindigkeit hinzugefügt wird. |
Ist die Position nicht im Zentrum der Entity, wird sich diese drehen. Befindet sich vecPos dagegen genau im Masse-Zentrum der Entity, wird es überhaupt keine Drehung geben (in diesem Fall sollten Sie die Verwendung von pXent_addvelcentral in Betracht ziehen).
Die Funktion arbeitet indem eine der Masse der Entity proportionale Kraft hinzugefügt wird. Anders als beim Hinzufügen echter Geschwindigkeit, wird sich die Kraft umso weniger auf die Rotationsgeschwindigkeit auswirken, je näher sie am Zentrum der Entity angebracht ist.
Hohe Geschwindigkeiten können eine sehr schnelle Drehung des Objekts bewirken (etwa einige Tausend Umdrehungen pro Sekunde), was ein tatsächliches Objekt durch die Zentrifugalkräfte zum Explodieren brächte. Normalerweise kann auch eine Physik-Engine nicht mit solchen Drehgeschwindigkeiten umgehen und tendiert dazu, dem rotierenden Objekt ein sprunghaftes Verhalten zu geben.
ENTITY* myCrate; pX_setgravity( nullvector ); pXent_setmass( myCrate, 10 ); pXent_setdamping (myCrate, 0 ); pXent_addvellocal( myCrate, vector(50,0,0), vector(100,0,0) );