Partagez
Aller en bas
avatar
Lifa
Membre

Nombre de messages : 95
Age : 32
Localisation : Falénia, ou bien sud-ouest de la France ^^'
Distinction : aucune
Date d'inscription : 25/06/2008
http://www.teradem.net

[EVENT][RMVX]Plateforme mobile à attraper au vol

le Sam 28 Juin 2008 - 11:55
* Plateforme mobile à attraper au vol *

Faire une plateforme qui emmène le héros d'un point A à un point B quand on monte dessus, c'était encore facile.

Mais monter sur une plateforme qui bouge en permanence et pouvoir descendre quand on veut, c'est déjà plus compliqué ^^'
Voilà une des solutions possibles !

La démo peut être trouvée ici :
http://www.megaupload.com/?d=4X4SIIH0


* Ingrédients *
- 1 héros
- un nombre X de cases à partir desquelles on peut monter et descendre de la plateforme mobile (2 minimum pour que ce soit utile, après moins il y en a, plus c'est facile à mettre en place)
- 1 événement "plateforme mobile"
- 1 événement "clone du héros"
- 2 événements par case d'entrée/sortie de la plateforme mobile
- 3 variables

* Recette *
- Créez vos chemins qui mèneront à la plateforme mobile comme vous voulez
- Créez l'événement "plateforme mobile". Il doit être "au niveau du héros" et déclenché "au contact du héros". Fréquence "5:maximum" (c'est plus joli).
- Mettez un parcours prédéfini à la plateforme mobile. Ce chemin doit passer à côté de chacune de vos futures cases d'entrée/sortie de la plateforme mobile. Ce parcours doit ABSOLUMENT former une boucle au final (faire un même chemin dans un sens puis en sens inverse peut marcher aussi)




- Réservez un coin de 3*3 cases dans votre niveau qui ne contiendra rien que des murs ou du vide. Ces cases serviront à y téléporter le héros le temps du trajet et contiendra les événements de déclenchement de sortie de la plateforme mobile (On y reviendra).
- Créez un événement "clone" au milieu de ces 3*3 cases. On reviendra sur son contenu plus tard.

- En "Commandes de l'événement" "plateforme mobile" (donc dès que le héros touchera la plateforme) le héros passe en "fantôme" et fait un pas en avant. Ensuite, toujours dans "plateforme mobile" créez une condition pour chaque case entrée/sortie desservie par cette plateforme : "La variable [attend_arret] est égale à X" (remplacez X par le numéro de la case entrée/sortie correspondante).
- Dans chacune de ces conditions, mettez "attendre 12 frames" (permet que le héros soit par la suite bien centré sur la plateforme mobile) ; téléportez l'événement "clone" à l'endroit où se trouvera la plateforme lorsque le héros montera dessus depuis cette case entrée/sortie X (pour téléporter l'événement : "changer la position d'un événement[clone]"). Ensuite, faites disparaître votre héros (opacité 0), et donnez au clone l'apparence de votre héros. Jetez votre héros au centre de votre coin de 3*3 cases (là où se trouvait le clone avant), et désactivez son mode fantôme. Le héros attendra là bien sagement, invisible aux yeux du joueur, et le clone se baladera sur la plateforme mobile . Enfin, faites passer la variable [deplacement_clone] à X (X étant toujours le n° de la case actuelle d'entrée/sortie).




- Sur chacune de vos cases entrée/sortie, créez un événement "Attente_X", "en dessous du héros", "au contact du héros", contenant : "Variable [attend_arret] est égale à X (les 2 X étant toujours le n° de la case actuelle d'entrée/sortie ^^')




- Passons au clone. Ne modifiez pas sa première page (pas d'image). Créez une nouvelle page ayant pour condition "variable [deplacement_clone] supérieur ou égal à 1". La condition de déclenchement doit être "processus parallèle", la vitesse et fréquence doivent être identiques à celles de la plateforme mobile (fréquence maximum ici). Les options du clone doivent être "traversable" et éventuellement "direction fixe" (le clone regardera toujours vers le bas même si la plateforme tourne, c'est selon vos goûts après ^^)
- Le clone va faire le même chemin que la plateforme, mais ce ne sera pas un parcours prédéfini, et c'est là que ça se complique. Il va falloir créer une condition pour chaque transition entre 2 plateformes : "La variable [deplacement_clone] est égale à X, X étant la première case d'entrée/sortie lors de la transition de la plateforme mobile du point X au point Y (ça va vous suivez ? XD). En gros pour aller du point 1 au point 2 mettez 1, pour aller du dernier point au point 1, mettez le numéro du dernier point. Ne mettez pas de point 0 par contre ^^
- Dans chacune de ces conditions, faites déplacer le clone du point X jusqu'à une case avant le point Y, en suivant la même trajectoire que la plateforme mobile, avec "attendre la fin" coché (et ça pour tous les déplacements du clone). Mettez la variable [arrivee_arret] égale à Y (ça permet de reconnaître que le héros arrive devant la case entrée/sortie numéro Y). Faites lui faire le dernier pas manquant vers le point Y, puis remettez la variable [arrivee_arret] à 0, et mettez la variable [déplacement_clone] égale à Y. Ainsi il passera à la condition suivante si le joueur choisit de ne pas descendre de suite de la plateforme mobile. Par contre, IMPORTANT, avant CHAQUE PAS effectué par le clone, copiez-collez "attendre 1 frames". Cela corrige un bug de "glisse" (cf la fin du tuto).




On arrive à la dernière partie : les événements de sortie de la plateforme mobile. Il en faudra peut-être un à chacun des points cardinaux, sur les 4 cases autour du héros actuellement invisible et emprisonné dans le vide (autour de la position initiale du clone, dans le carré de 3*3 cases). Considérez le héros invisible face à un de ces événements comme étant le clone sur la plateforme mobile face à une des cases de sortie. Ainsi si à la case entrée/sortie X il faut aller vers le haut pour descendre, créez un événement en haut et mettez la condition correspondante dedans. Si aucune des cases entrée/sortie de propose de sortir par la gauche par exemple, alors il est inutile de créer un événement sur la gauche de ce carré 3*3 cases.




- A l'intérieur de chacun de ces événements, on retrouvera donc une condition correspondant à chacun des arrêts faisant avancer le héros dans cette direction. Cet événement doit être "au niveau du héros" et activé "au contact du héros".
- Pour chaque condition : "la variable [arrivee_arret] est égale à X", X correspondant (encore et toujours ^^) à la case d'entrée/sortie correspondante. (hop, un son d'arrivée facultatif ^^). Déplacer le héros en faisant un saut jusqu'à la case où se trouverait la plateforme mobile devant cette case d'entrée/sortie, puis opacité 255 et mode fantôme activé, le tout en "attendre la fin". Ensuite, déplacez le héros d'une case vers l'avant puis enlevez le mode fantôme, sans "attendre la fin" cette fois. Faites disparaître le clone en mettant la variable [deplacement_clone] égale à 0, téléportez le clone à sa position initiale au centre des 3*3 cases ("changer la position d'un événement[clone]"). Enfin, modifiez son apparence pour mettre "rien" à la place. Et pour que le tout soit réutilisable sans problèmes, mettez la variable [attend_arret] égale à X (correspondant à... *SBBAAAFFFF* okok je me tais), et la variable [arrivee_arret] égale à 0.




Voilà !

- - - fin - - -


* Améliorations possibles *
- Il est tout à fait possible de mettre la plateforme mobile à 2 cases d'écart des entrées/sorties et faire que le héros saute sur la plateforme. Faut juste faire quelques modifs' ^^
- La plateforme mobile peut aussi être téléportée d'un endroit à un autre (genre passer dans une grotte et ressortir d'un autre côté), il faut juste que le clone du héros suive le même mouvement.
- Il est tout à fait possible de séparer les cases "entrée" des cases "sortie" si votre jeu le demande.

-Hmmm j'ai oublié de mettre un nom à certains événements dans la démo ^^'

*Observations*
- Pour plusieurs plateformes mobiles sur une même map, il faut recréer le groupe de 3 variables pour chaque plateforme., et un seul coin de 3*3 cases suffit si les numéros de cases entrée/sortie sont différents pour chaque trajet.
- On peut réutiliser les mêmes variables si l'on a des plateformes mobiles sur 2 maps séparées.

*bugs bizzarres*
- Le "attendre 1 frames" avant chaque déplacement est moche, mais sans ça mon héros glissait petit à petit de la plateforme si on attendait longtemps, et finissait par flotter au dessus du vide *__* Je comprends pas pourquoi j'obtiens ce décalage. Si quelqu'un peut améliorer ça...

*Problèmes non résolus*
- Si la map est plus grande que la taille minimale, la caméra ne suit pas le clone ^^' La seule solution est de placer de carré 3*3 cases au centre de la boucle faite par la plateforme, de manière à ce que tout le trajet apparaisse malgré tout à l'écran.
- Si quelqu'un connaît un moyen pour arrêter de faire défiler l'écran, on peut s'arranger pour suivre le mouvement du clone avec, mais là l'écran cherche absolument à suivre le héros caché >_<"
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum