Construire
un ascenseur formé d'une plate-forme qui joigne le rez-de-chaussée et le
premier étage. Deux mobiles forment les deux portes de l'ascenseur en B
et C. Ils ont un déplacement latéral. Deux mobiles figurant un bouton
d'appel sont placés en D et E sur le mur à côté de la porte de
l'ascenseur. Enfin deux "Dispatcher" sont placés
en F et G par commodité. Ce peut être n'importe où.
Le "Tag" de A=Lift. Le "Tag" de B=p1. Le "Tag" de C=p2. Le "Event" de D=start. Le "Event" de E=start2. Le "Tag" de F=start. Le "Tag" de G=start2.
A aura la propriété "TriggerToggle". B et C auront "TriggerOpenTimed"
Donc, si on appuie sur le bouton d'appel de l'ascenseur, on active un "Dispatcheur" qui répartira différemment les actions selon l'étage, la plate-forme étant au départ au niveau du rez-de-chaussée.
Au rdc on aura l'enchaînement suivant : p1 -->lift
-->p2 -->lift.
Au premier étage : lift -->p2 -->lift -->p1.
Dans le premier cas, la plate-forme est renvoyée au rdc, dans le second, elle est d'abord appelée à l'étage avant d'ouvrir la porte..
Mais si l'on veut faire un ascenseur qui desserve plsusieurs étages avec bouton d'appel et boutons d'accès aux étages dans l'ascenseur, on peut recourir très simplement aux propriétés de "ElevatorMover" et "ElevatorTrigger" :
Il faut utiliser un ElevatorMover qui sera la plate-forme de
l'ascenseur ayant les paramètres suivants :
- Tag = asc"
- Object/InitialState = ElevatorTriggerGradual
- Mover/MoberEncroachType = ME_IgnoreWhenEncroach
- Mover/MoveTime = 3
- Numkeys = 3 correspondant aux 3 étages (3 Keyframes)
Les 3 porte de pallier ont pour "Tag" p0, p1 et p2. Leurs autres
paramètres déterminants sont :
- Object/InitialState = TriggerOpenTimed
A chaque étage, un
bouton constitué d'un mobile sert à ouvrir la porte (dont le "Tag" est
dans son "Event"), tout en appelant indirectement l'ascenseur car pour
l'actionner, il faut en fait entrer dans le rayon d'action d'une
gâchette "ElevatorTrigger" placée au même endroit et définie comme suit
:
- Events/Event = asc
- ElevatorTrigger/GotoKeyframe x où x est le numéro de l'étage où on se
trouve.
Dans la cage
d'ascenseur, au fond, il y a deux boutons correspondant aux deux autres
étages. Devant ces boutons est placée une gâchette "ElevatorTrigger"
dont le rayon d'action est très petit (10) et qui est sélectionnée cette
fois par le tir, choisi ici pour mieux discriminer des boutons très
proches. Ces gâchettes ont pour paramètres :
- ElevatorTrigger/GotoKeyframe = l'étage voulu
- ElevatorTrigger/TiggerType = TT_shoot
- Events/Event = asc
Il faut encore placer une gâchette simple près de la porte, à l'intérieur de l'ascenseur, et de faible rayon d'action, de façon à pouvoir sortir une fois qu'on est arrivé à l'étage concerné.
Pratiquement, cela fonctionne sans erreur. Il est parfois un peu délicat d'appuyer sur un bouton à l'intérieur de l'ascenseur, mais on peut améliorer la chose avec une cabine plus grande, une bonne répartition des boutons..
Dans un niveau de combat à mort, il serait intéressant d'avoir des voyants qui indiquent à quel étage se trouve la cabine pour prévoir le moment où on va ouvrir le feu..Il faut alors combiner avec des lumières à interrupteurs.
Une façon très simple
de faire un ascenseur qui joigne simplement deux niveaux est de donner
au "Tigger" qui commande la plateforme un collision verticale de la même
hauteur que le puit avec les items "TriggerToggle" pour le mobile de la
plateforme, et et un délai de réactivation de 2 ou 4 pour le "Tigger"
placé au milieu du parcours. On suppose que la plateforme est en place à
l'arrivée du joueur et qu'il poura donc la retrouver au retour. Sion
prévoir un bouton d'appel.
TRAIN
Mobile simple
-Ignore
-Tag=train
Trigger lié avec
-AttachTag=train
-Event=train