Anim_Linear
Animationen
4.10.0.0 OC
array
int
iPosition
Startwert. Sollte innerhalb des von iBegin und iEnd aufgespannten Intervalls liegen.
int
iBegin
Beginn des Intervalls.
int
iEnd
Schluss des Intervalls. Wenn iEnd größer als iBegin ist, so steigt der Wert mit der Zeit an, andernfalls nimmt er ab.
int
iLength
Anzahl Frames die ein Durchspielen von iBegin bis iEnd dauert.
int
iEnding
Bestimmt, was nach dem Erreichen von iEnd geschieht. Folgende Möglichkeiten existieren:
KonstanteWertBeschreibung
ANIM_Loop0Der Wert wird nach dem Erreichen von iEnd wieder auf iBegin gesetzt und der Durchgang beginnt von neuem.
ANIM_Hold1Nach Erreichen von iEnd bleibt der Wert konstant auf iEnd.
ANIM_Remove2Nach Erreichen von iEnd wird die zugehörige Animation entfernt wie wenn zum entsprechenden Zeitpunkt StopAnimation aufgerufen würde. Bei Kombinationsknoten wird der Kindknoten mit der kleineren Gewichtung entfernt.
Der Wert nimmt linear mit der Zeit (in Frames) zu oder ab (je nachdem ob iEnd größer oder kleiner als iBegin ist). Anfangs beträgt der Wert iPosition und läuft dann Richtung iEnd. Ein Durchgang von iBegin bis nach iEnd dauert iLength Frames. Wenn iPosition von iBegin abweicht dann wird iEnd bereits früher erreicht sein. iEnding bestimmt, was passiert, wenn das Ende erreicht ist.
Siehe die Animations-Dokumentation für eine Beschreibung des Animationssystems.
var start = 0;
var end = GetAnimationLength("Turn");
if(GetWind() < 0)
{
start = end;
end = 0;
}
if(GetWind() != 0)
SetAnimationPosition(GetRootAnimation(5), Anim_Linear(GetAnimationPosition(GetRootAnimation(5)), start, end, 7200/GetWind(), ANIM_Loop));
else
SetAnimationPosition(GetRootAnimation(5), Anim_Const(GetAnimationPosition(GetRootAnimation(5))));
Setzt die Geschwindigkeit mit der die Animation im Slot 5 abgespielt wird abhängig von der Windgeschwindigkeit. Weht der Wind nach links so wird die Animation rückwärts abgespielt. Es wäre auch möglich die Position jeden Frame mit Anim_Const zu setzen, bei der Lösung mit Anim_Linear reicht es aber aus wenn die Funktion nur alle paar Frames aufgerufen wird, da sich das Windrad in der Zwischenzeit mit konstanter Geschwindigkeit weiter dreht (es wird also die Näherung gemacht, dass die Windgeschwindigkeit für kleine Zeitintervalle konstant ist).
PlayAnimation
SetAnimationPosition
SetAnimationWeight
Anim_Const
Anim_X
Anim_Y
Anim_AbsX
Anim_AbsY
Anim_XDir
Anim_YDir
Anim_Action
Clonk-KarlJanuar 2010