phent_addforcelocal ( entity, vecForce, vecPoint );
Kraft und Drehmoment (="angular force") werden auf die angegebene Entity
an der lokalen Position vecPoint angewendet. Dies erlaubt es, eine konstante
Kraft
auf einen konstanten Punkt anzuwenden, ohne sich Gedanken über die gegenwärtige
Ausrichtung der Entity machen zu müssen. Das ist für Flugsimulationen
interessant, wo die Antriebskraft immer in Längsrichtung, also vorwärts,
wirkt. Kann aber auch an der relativen Position wie dem Flugzeugheck festgemacht
werden. Es wird nicht geprüft, ob sich die Position innerhalb der Entity
befindet. So kann man durch Platzieren eines vecPoints weit außerhalb
der Entity einen starken Spin erzeugen. Befindet sich vecPoint hingegen genau
auf
im Zentrum der Masse
der Entity, wird überhaupt kein Spin verursacht (für diesen Fall
verwenden Sie besser phent_addcentralforce).
phent_addforce erzeugt das gleiche Ergebnis
wie der Aufruf von beiden Anweisungen phent_addcentralforce
und phent_addtorque mit den gleichen
Parametern.
Kraft ist das Produkt aus Masse und Beschleunigung. Für höhere Beschleunigung
oder schwerere Entities wird daher eine größere Kraft benötigt.
Parameter:
entity |
die zu beeinflussende Entity |
vecForce |
der Vektor legt die Kraft fest, die auf die Entity ausgeübt wird
(relativ zur Ausrichtung) |
vecPoint |
der Vektor, von dem die Kraft vecForce ausgeübt wird. (Relativ zur Ausrichtung) |
Rückgabewert:
1 bei Erfolg, sonst 0.
Bemerkungen:
- Diese Funktion funktioniert nun auch mit PH_WAVE-Entities. Unter
Verwendung einer solchen, ist vecpoint eine globale (=world) Koordinate.
Vecforze.z gibt die anfängliche Wasserverdrängungsmenge in Z-Richtung
an. Der Wertebereich für vecforce.z ist -1 bis +1, wobei dieser Wert
in Relation zur allgemeinen Terraingrösse steht. Das heisst ein Wert
von 1 entpricht dem Abstand eines Vertex zu seinem Nachbarn in x-Richtung;
ein Wert von 0.5 wäre dann die Hälfte dieser Distanz. Es ist eine
gute Idee, hier kleine Werte zu verwenden.
- Bei einer Wasser-Entity generiert diese Anweisung eine Verzerrung mit
der Intensität von vecforce.z am lokalen Vecpoint der Entity. Es wird
lediglich die z-Komponente verwendet (x, y nicht) und der Wert muss zwischen
-1 und +1 liegen.
Geschwindigkeit:
Schnell
Edition:
C
P
Beispiel:
phent_addforcelocal(my, vector(10,0,0), nullvector);
Siehe auch:
phent_addforcelocal, ph_selectgroup
► Aktuelle Version Online