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: KonstanteWertBeschreibungANIM_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