Partagez
Aller en bas
Medal'
Medal'
Membre

Nombre de messages : 407
Age : 22
Localisation : Alsace
Distinction : aucune
Date d'inscription : 23/12/2012

[Tuto XP] Amélioration de la téléportation Empty [Tuto XP] Amélioration de la téléportation

le Sam 27 Juin 2015 - 22:51
Bonjour, bonsoir à tous, ceci est mon premier tutoriel.

Dans un jeu, le héros est amené à passer d'une carte à une autre via un événement de téléportation.
Le but de ce tutoriel est de vous apprendre à améliorer le réalisme des changements de maps.
Voilà ce qui est dit dans le livre de Samarium : "Pour que le héros change de carte, il suffit d'employer la commande
d'événements Transfer Player. Le héros se téléporte alors vers un carreau donné d'une autre carte ou de la carte actuelle."

Ceci dit, le fait de ne faire qu'un événement de téléportation sur un seul carreau d'une carte pour passer à une autre carte ce n'est pas très réaliste.
"Pour rendre ça plus réaliste il n'y a qu'à faire d'autres événements de téléportation sur la même cartes", me diriez-vous. Oui, on peut. Mais le livre de samarium à une méthode beaucoup moins gourmande en évents, que je vais vous expliquer ici.
/!\CE TUTORIEL REPREND CELUI DU LIVRE/!\

Tout d'abord, allez dans la base de données, onglet "événements communs" et créez un nouvel événement commun que vous pouvez appelé n'importe comment (moi je l'ai appelé "Téléportations").
Dans la page de l'événement, créez une nouvelle variable que vous appellerez "Position X héros" (par exemple), faites "Rendre égale(s) à" puis dans opérande faites "Événement" -> "Coordonnée X" -> "Héros" puis faites "OK' pour revenir à la page de l'événement.
Puis, créez une seconde variable cette fois appelée "Position Y héros" (là encore c'est un exemple), puis vous faites la même chose : "Rendre égale(s) à" -> "Événement" -> "Coordonnée Y" -> "Héros" puis "OK" pour revenir à la page de l'événement :

[Tuto XP] Amélioration de la téléportation 15062710235918241113403800

Quittez la base de données et allez sur une map où vous voulez améliorer la téléportation est placez un nouvel événement sur la ligne de téléportation voulue (je vous conseil, pour bien suivre le tuto, de placer l'événement comme sur l'image ci-dessous) :

[Tuto XP] Amélioration de la téléportation 15062710235818241113403799

La condition de déclenchement de ce nouvel événement est "Processus parallèle" puisqu'il vérifie la position du héros tout le temps.
Sur la page de l'événement faites "Appeler un événement commun..." et appelez l'événement commun que l'on viens de créer ("Téléportations" dans mon exemple) :

[Tuto XP] Amélioration de la téléportation 15062710235218241113403793

Ensuite créez une nouvelle variable (que j'ai appelé "Position X event" pour l'exemple), faites "Rendre égale(s) à", "Événement" -> "Coordonnée X" -> "Cet événement" :

[Tuto XP] Amélioration de la téléportation 15062710235318241113403794

Maintenant faites une condition pour vérifier si le héros se trouve sur la ligne de téléportation : "Condition..." -> "La variable "Position X héros" égale à la variable "Position X event"" (et décochez "Éxécuter autre chose si la condition n'est pas respectée") :

[Tuto XP] Amélioration de la téléportation 15062710235418241113403795

À l'intérieur de la condition, créez une nouvelle variable (appelée ici "Map ID"), faites "Rendre égale(s) à", puis "Valeur définie" et là vous mettez l'ID de la map sur laquelle le héros veut se téléporter, dans mon exemple il s'agit de la map d'ID 1, la valeur définie sera donc de 1 :

[Tuto XP] Amélioration de la téléportation 15062710235518241113403796

Encore dans la condition, créez une nouvelle variable ("Map X" pour l'exemple), faites "Rendre égale(s) à" et mettez 0 pour la "Valeur définie" :

[Tuto XP] Amélioration de la téléportation 15062710235618241113403797

Et pour finir, toujours dans la condition, faites "Téléporter l'équipe..." -> "Définir l'endroit d'après les variables" et là mettez "Map ID" pour "ID de la carte", "Map X" pour "Coordornnée X" et "Position Y héros" pour "CoordonnéeY" :

[Tuto XP] Amélioration de la téléportation 15062710235718241113403798

Quelques questions se posent à la fin de ce tuto, je vais y répondre de façon la plus claire possible :

Si on veut téléporter dans le sens inverse ?
Si vous voulez vous téléporter dans le sens inverse, il suffit de changer la valeur définie de la variable "Map X" et de mettre la dernière valeur de l'abscisse de la carte (par exemple si vos cartes font 20*20, la dernière valeur de l'abscisse sera 19) à la place de 0.

Si on choisis une ligne de téléportation horizontale ?
Si vous avez choisis une ligne de téléportation horizontale, il suffit de faire la même démarche que si vous avez choisis une ligne verticale, l'événement commun ne changera pas mais dans l'événement sur la carte il faudra créer une variable "Position Y event" qu'il faudra rendre égale à "Événement" -> "Coordonnée Y" -> "Cet événement"
La condition changera elle aussi est deviendra : "Variable "Position Y héros" égale à "Position Y event"".
Il faudra créer une variable "Map Y" et mettre sois 0, sois la dernière valeur de l'ordonnée (Y donc) de la map. Et pour finir dans "Téléporter l'équipe..." il faudra faire : "Définir l'endroit d'après les variables" avec "Map ID" pour l'ID de la map, "Position X héros" pour "Coordornnée X" et "Map Y" pour "Coordornnée Y".

Voili voilou Smile

Ce tutoriel est à présent terminé, j'espère qu'il en aidera certains et si vous avez des questions, postez les en commentaires et je tenterais d'y répondre Smile

Edit : Le tutoriel possède une faille. En effet, si vous placez l'événement de téléportations sur l'extrême droite d'une map d'ID A, comme vu plus haut, cela vous téléportera à l'extrême gauche de la map de destination d'ID B , ce qui est logique.
Maintenant, placer l'événement de téléportations à l'extrême gauche de la map d'ID B pour vous téléporter à l'extrême droite de la map d'ID A est tout aussi possible, et c'est faisable.
Mais un problème survient alors : La téléportation A -> B et B -> A se répétera à l'infini.
Ce n'est pas un gros problème en soi, mais du coup pour les personnes qui prévoit dans leur jeu que le héros revienne à plusieurs maps en arrière et bien ce n'est tout à fait pas possible à cause de cette boucle infini.
Le mieux est donc de ne pas revenir sur plusieurs maps en arrière.
meziki
meziki
Membre

Nombre de messages : 5
Distinction : aucune
Date d'inscription : 08/06/2015

[Tuto XP] Amélioration de la téléportation Empty Re: [Tuto XP] Amélioration de la téléportation

le Sam 4 Juil 2015 - 12:35
Salut ^^, j'ai pas tout tout lu mais d'après ce que j'ai vu, il me semble qu'on peut aussi utilisé l'événement téléportation sur la seconde page d'event et c'est plus rapide Smile
et pour le coté réaliste de la chose:

exemple je veux aller sur la map qui ce situe au nord(map2) de celle ou je suis(map1):
- Lors du mapping:
je fais un copié des 3 lignes tout en haut de la map1 et je les collent sur les 3 lignes tout en bas de la map2.

dans le sens map1 -> map2
je créé un event téléporter sur la case de la 1ere colonne 2e ligne de la map1 et les coordonnées d'arrivé sera l'avant dernière ligne de la map2 sur la 1ere colonne mais à l'avant dernière ligne de la map2
et je rajoute un event déplacer le héros d'un pas vers le haut

dans le sens inverse (map2 -> map1)
je créé un event téléporter sur la case de la 1ere colonne dernière ligne de la map2 et les coordonnées d'arrivé sera la 3e ligne 1ere colonne de la map2 avec un event déplacer le héros d'un pas vers le bas.

Voila Cordialement
Medal'
Medal'
Membre

Nombre de messages : 407
Age : 22
Localisation : Alsace
Distinction : aucune
Date d'inscription : 23/12/2012

[Tuto XP] Amélioration de la téléportation Empty Re: [Tuto XP] Amélioration de la téléportation

le Mar 16 Fév 2016 - 11:38
Bonjour à tous !

Pour la faille :
@Tyrion a écrit:Tout d'abord, je m'excuse du nécropost !
Mais c'est pour apporter une aide si elle n'a pas été déjà résolue, pour ainsi éviter d'avoir une boucle de téléportation infinie, il faut tout simplement téléporté le joueur d'une case en plus ou en moins en faite... Je m'explique
Par exemple, pour une carte (par défaut) est de minimum en Largeur égale à "16" (X) et en Hauteur égale à "12" (Y) :
En faisant en sorte que la variable "Map X" égale "1" (ajouter 1) plutôt que zéro pour la téléportation verticale et ainsi de même pour la variable "Map Y" égale à 11 pour la téléportation horizontale, donc ainsi on évite d'entrer dans une boucle de téléportation infernale ! xD

Si sanction il y a et bien , j'en subirai les conséquences ! ^^
En espérant en aider plus d'un parce que ce tutoriel nous évite de faire bon nombres d'événements de Téléportation et ça, c'est cool ! o/

Je ne ferai plus de nécropost, promis. Smile

Voilà ! :P
Contenu sponsorisé

[Tuto XP] Amélioration de la téléportation Empty Re: [Tuto XP] Amélioration de la téléportation

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum