Kraft und Drehmoment ("Winkelkraft") werden an der globalen (Weltkoordinaten) oder der lokalen (Entity-Koordinaten) Position vPos an der angegebenen Entity angebracht. Der Vektor force ist von der gegenwärtigen Ausrichtung des Objekts unabhängig. Es wird nicht geprüft, ob die Position tatsächlich innerhalb der Entity lilegt. Sie können ihr also, indem Sie eine vPos weit weg von der Entity wählen, eine starke Drehung geben. Ist vPos exakt am Massezentrum des Objekts, wird es gar keine Drehung geben (ziehen Sie in diesem Fall das Verwenden von pXent_addforcecentral in Erwägung).
entity | registrierter Entity-Pointer (Actor) |
vForce | Vektor, der die auf die Entity auszuübende Kraft bestimmt |
vPos | Vektor, der den Punkt an dem vForce angebracht werden soll bestimmt |
Ungleich Null, wenn erfolgreich, ansonsten 0.
Force beschleunigt Entities entsprechend der Funktion pX_setforcemode.
Kräfte sind additiv, ein zweimaliges Aufrufen dieser Funktion beispielsweise dupliziert die Kraft.
Aus Gründen der Effizienz sollten Sie wenn möglich pXent_addforcecentral gegenüber von pXent_addforceglobal vorziehen.possible.
entity* myCrate; var gravity[3] = 0,0, -386; var crateMass= 10; pXent_settype( myCrate, PH_RIGID, PH_BOX ); pXent_setmass( crateMass, 1); // force is three times as strong as gravity's pull, so we can lift up the entity, while pressing a key while (key_pressed( key_for_str("L")) ) { vec_set( temp, gravity ); vec_scale( temp, -3 * crateMass ); pXent_addforceglobal( myCrate, nullvector, temp ); wait(1); }
pXent_addforcelocal, pX_selectgroup, pXent_addforcecentral, pX_setforcemode