SimFlight

Kategorie: Objekte / Bewegung
Ab Engineversion: 4.9.5.0 CE

Beschreibung

Simuliert die Bewegung eines freien Falles mit Anfangsgeschwindigkeit in die angegebene Richtung. Wenn die simulierte Bewegung ein Material mit der gewünschten Dichte durchläuft, gibt diese Funktion true zurück, ansonsten false.
Bei true wird die X- und Y-Position des Aufpralls in den angegebenen Variablen für iX und iY gespeichert, die Aufprallgeschwindigkeit in den angegebenen Variablen fü iXDir und iYDir. Siehe dazu Referenzen.

Syntax

bool SimFlight (int &iX, int &iY, int &iXDir, int &iYDir, int iMinDensity, int iMaxDensity, int iIteration, int iPrecision);

Parameter

iX:
X-Koordinate der Startposition. Immer global.
iY:
Y-Koordinate der Startposition. Immer global.
iXDir:
X-Anfangsgeschwindigkeit.
iYDir:
Y-Anfangsgeschwindigkeit.
iMinDensity:
[opt] Minimale Dichte des Materials nach dem auf der Wurfbahn gesucht wird. Keine Angabe oder Null entspricht 50 (festes Material).
iMaxDensity:
[opt] Maximale Dichte des Materials nach dem auf der Wurfbahn gesucht wird. Keine Angabe oder Null entspricht 100 (Vehicle).
iIteration:
[opt] Anzahl der simulierten Frames bis zum Abbruch der Simulation. Keine Angabe oder Null entspricht -1 (Kein Abbruch).
iPrecision:
[opt] Genauigkeit. Keine Angabe oder Null entspricht 10.

Beispiel

var iX = GetX(), iY = GetY(), iXDir = GetXDir(), iYDir = GetYDir();
if (GetAction()eq"Jump")
  if (SimFlight(iX, iY, iXDir, iYDir))
    if (iYDir >= 80)
      Message("Oh oh, das wird ein harter Aufprall!", this());
Wenn sich der aufrufende Clonk in der Luft befindet und vorauszusehen ist, dass er mit hoher Geschwindigkeit auf den Boden aufprallen wird, ruft dies der Clonk aus. Bei einer Aufprallgeschwindigkeit von mindestens 8 Pixeln pro Frame landet der Clonk nicht mehr auf seinen Füßen und muss sich erst wieder aufrichten.
Die ersten vier Parameter von SimFlight sind Referenzen.
Newton, März 2004