Parameters=PARAM_MOVE_ITEM

  • Statics und Moveables bewegen

    Bewegen von Statics und Moveables


    Mit diesem unten aufgeführten Scripteintrag lassen sich in der TRNG Engine Objekte (Statics und Moveables) bewegen und somit tolle Effekte erzeugen.
    Nötig dafür ist folgender Syntax, der etwas verwirrend erscheinen mag, gehen wir alle Syntaxwerte Punkt für Punkt durch.


    Syntax: Parameters=PARAM_MOVE_ITEM, IdParamList, Flags (FMOV_...), IndexItem, Direction (DIR_...), Distance, Speed, MovingSound, FinalSound, Extra


    Bereich im Script: [Level]


    IdParamList


    Hier gibt man eine fortlaufende Nr. ein um die unterschiedlichen PARAM_MOVE_ITEM Scriptbefehle unterscheiden zu können. Praktischerweise fängt man bei 1 an, dann den nächsten mit 2 usw.



    Mit dem Flipeffect 166 kann man später den Script-Befehl im Level Editor auslösen. Hier wählt man dann die entsprechende Nr. aus, die man dem Befehl gegeben hat.


    Flags (FMOV_...)

    Hier kann man verschiedene Verhaltensweisen und Eigenschaften des zu bewegenden Objektes festlegen. Möchte man hier nichts verwenden, setzt man einfach ein IGNORE.

    Mehrere FMOV_... können durch ein + miteinander verbunden werden.

    1. FMOV_ANVIL_GRAVITY =sehr schweres Objekt mit starker Schwerkraft, vergleichbar mit einem Amboss (Anvil =Amboss auf deutsch)
    2. FMOV_APOLLO_GRAVITY= startet wie eine Rakete langsam bis zur maximalen Geschwindigkeit und bleibt dann oben.
    3. FMOV_APPLE_GRAVITY = Verhalten, wie wenn ein Apfel vom Baum fällt.
    4. FMOV_CAR_SPEED
    5. FMOV_EXPLOSION_GRAVITY
    6. FMOV_EXPLOSION_SPEED
    7. FMOV_FROG_JUMP_GRAVITY
    8. FMOV_HEAVY_ALL
    9. FMOV_HEAVY_AT_END
    10. FMOV_IGNORE_FLOOR_COLLISION
    11. FMOV_INFINITE_LOOP
    12. FMOV_LEAF_GRAVITY
    13. FMOV_MAGNET_SPEED
    14. FMOV_MAN_GRAVITY
    15. FMOV_TRIGGERS_ALL
    16. FMOV_USE_EXTRA_ACTOR_INDEX
    17. FMOV_USE_LEADING_ACTOR_INDEX
    18. FMOV_WAIT_STAND_ON_FLOOR

    IndexItem


    Die Index -Nr. des Objektes. Dieses erfährt man durch Anklicken des Objektes.




    Direction (DIR_...)

    Hier kann man verschiedene Richtungsangaben mit eventuellen Zusätzen angeben.


    Richtungsangaben:


    DIR_UP = bewegt sich nach oben

    DIR_DOWN = bewegt sich nach unten


    DIR_WEST = bewegt sich nach Westen

    DIR_EAST = bewegt sich nach Osten

    DIR_SOUTH = bewegt sich nach Süden

    DIR_NORTH = bewegt sich nach Norden


    DIR_FORWARD = Objekt bewegt sich in die Richtung, in der es zeigt.


    DIR_INVERT_DIRECTION = wird in Verbindung mit einem anderen DIR_ Befehl gebraucht.

    Wenn man z.b. DIR_TURNING_RIGHT_90+DIR_INVERT_DIRECTION zusammen benutzt, bewegt sich das Objekt in die andere Richtung und dreht sich dann nach rechts.


    Bewegungen mit Drehungen:


    DIR_TURNING_LEFT_45 = Objekt bewegt sich vorwärts und dreht sich dabei langsam um 45 Grad nach links.

    DIR_TURNING_LEFT_90 = = Objekt bewegt sich vorwärts und dreht sich dabei langsam um 90 Grad nach links.

    DIR_TURNING_RIGHT_45 = Objekt bewegt sich vorwärts und dreht sich dabei langsam um 45 Grad nach rechts.

    DIR_TURNING_RIGHT_90 = Objekt bewegt sich langsam vorwärts und dreht sich dabei langsam um 90 Grad nach rechts.


    DIR_LU_TURNING_180 = Objekt bewegt sich vorwärts und dreht sich dabei nach links so lange bis es sich am Ende um 180 Grad gedreht hat.

    DIR_RU_TURNING_180 = Objekt bewegt sich vorwärts und dreht sich dabei nach rechts so lange bis es sich am Ende um 180 Grad gedreht hat.


    Bewegungen in Verbindung mit Lara:


    DIR_LARA_FACING = bewegt sich in die Richtung in die Lara schaut. (Könnte z.B. dazu benutzt werden, wenn Lara etwas von sich wegwirft).

    DIR_HEAD_FOR_LARA = Objekt bewegt sich auf dorthin, wo Lara sich befindet.


    Bewegungen in Zwischensequenzen (Cutscenes):


    DIR_DIRECTION_LARA_LEADING_ACTOR =Schnittpunkt der Bewegung ist Lara und der Enemy (Leading Actor).

    DIR_HEAD_FOR_LEADING_ACTOR = Objekt bewegt sich auf Enemy (Leading Actor) zu.

    DIR_LEADING_ACTOR_FACING = Objekt bewegt sich dorhin, wo der Enemy (Leading Actor) hinschaut.

    DIR_HEAD_FOR_EXTRA_ACTOR = Objekt bewegt sich auf den Extra Actor zu.


    werden beim Action Trigger 87 verwendet.



    Distance


    Hier setzt man fest, wie weit sich ein Objekt bewegt.


    1 Square = 1024

    1/2 Square = 512

    ein Klick = 256


    Empfehlung ist hier, immer mit 256 zu multiplizieren um Probleme zu vermeiden.

    Die größte Entfernung ist 64512 was 63 Squares entspricht.


    Speed


    Hier können wir die Geschwindigkeit eingeben, mit der sich ein Objekt bewegt.

    Die Erklärung von Paolone ist für mich zu schwierig zu verstehen. Ich habe folgende Formel, die mir hilft die Zeit zu errechnen, die ein Objekt braucht.

    Zeit = Distance/ (Speed x 30 Sekunden)


    Als Beispiel nehmen wir mal ein Objekt welches sich über 3 Blöcke (1024 x 3 = 3072) bewegt.


    Als Speed geben wir mal "1" ein.


    Zeit = 3072 / (1 x 30 Sekunden)


    Ergebnis: 51,2 Sekunden braucht das Objekt um über 3 Blocks zu fahren.

    Als Empfehlung für Speed wird hier ein Zahlenbereich von 8- 64 gegeben.


    64 als Speed wäre bei unserem Beispiel von 3 Blöcken (3072).


    3072/ (64x 30) = 1,6 Sekunden


    MovingSound


    Hier kann man einen Sound eingeben der beim Bewegen ertönen soll. Sinnvoll wäre hier z.b. der Pushable Sound der ertönt, wenn Lara einen Block schiebt.


    Man kann im NG Scripter unter Reference in der Sounds sfx indices list nachsehen, um die Nr. zu erfahren.


    Für den Pushable Sound würde man hier "63" eingeben.


    Der Sound befindet sich im Loop Modus, das heißt er wiederholt sich beim Bewegen des Objektes solange, bis das Objekt angehalten hat.

    Möchte man keinen Sound haben, gibt man hier "IGNORE" ein.



    FinalSound


    Hier kann man einen Sound eingeben der am Ende ertönen soll.

    Man kann im NG Scripter unter Reference in der Sounds sfx indices list nachsehen, um die Nr. zu erfahren.

    Möchte man keinen Sound haben, gibt man hier "IGNORE" ein.


    Extra field


    Dieser Eintrag ist optional. Man schaut am besten bei den DIR_ ... und FMOV_... Werten, um zu sehen ob man hier was einträgt.

    Ansonsten hier einfach ein IGNORE setzen.