Kategorie: Objekte
/ Bewegung
Ab Engineversion: 1.0 OC
SimFlight
Beschreibung
Simuliert die Bewegung eines fallenden Objekts mit einer gegebenen Startposition und initialier Geschwindigkeit. Das zurückgegebene Array enthält [int x_final, int y_final, int xdir_final, int ydir_final, int time_passed].
Falls die projektierte Flugbahn ein Material der angegebenen Dichte trifft wird die Simulation gestoppt und time_passed wird nicht negativ. Ansonsten wird time_passed negativ.
Falls die projektierte Flugbahn ein Material der angegebenen Dichte trifft wird die Simulation gestoppt und time_passed wird nicht negativ. Ansonsten wird time_passed negativ.
Syntax
array SimFlight(int x, int y, int xdir, int ydir, int min_density, int max_density, int iterations, int precision);
Parameter
- x:
- [opt] X-Versatz der Startposition. (NICHT optional wenn ohne Objektkontext aufgerufen wird)
- y:
- [opt] Y-Versatz der Startposition. (NICHT optional wenn ohne Objektkontext aufgerufen wird)
- xdir:
- [opt] Initiale horizontale Geschwindigkeit. Falls nicht gesetzt, wird die horizontale Geschwindigkeit des Objekts angenommen. (NICHT optional wenn ohne Objektkontext aufgerufen wird)
- ydir:
- [opt] Initiale vertikale Geschwindigkeit. Falls nicht gesetzt, wird die vertikale Geschwindigkeit des Objekts angenommen. (NICHT optional wenn ohne Objektkontext aufgerufen wird)
- min_density:
- [opt] Minimale Dichte des Materials nach dem auf der Wurfbahn gesucht wird. Keine Angabe entspricht 50 (festes Material).
- max_density:
- [opt] Maximale Dichte des Materials nach dem auf der Wurfbahn gesucht wird. Keine Angabe entspricht 100.
- iterations:
- [opt] Anzahl der simulierten Frames bis zum Abbruch der Simulation. Keine Angabe oder ein negativer Wert bedeutet dass solange gesucht wird bis die Landschaft oder der Rand der Landkarte getroffen wird.
- precision:
- [opt] Precision of the velocity input and output parameters (
xdir
,ydir
,xdir_final
andydir_final
). Defaults to 10 if not specified.
Beispiel
if (GetAction() == "Jump") { var end = SimFlight() if (end[3] >= 80) Message("Oh oh, this will be a rough impact!"); }
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.
Die ersten vier Parameter von SimFlight sind Referenzen.