AccueilAccueil  PortailPortail  FAQFAQ  RechercherRechercher  MembresMembres  GroupesGroupes  S'enregistrerS'enregistrer  ConnexionConnexion  




Partagez | 
 

 [EventExtender] Condition de directions simplifiées

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Invité
Invité



MessageSujet: [EventExtender] Condition de directions simplifiées    Ven 12 Oct 2012 - 10:27

Bonjour,

Voilà, je viens juste donner une petite astuce qui pourrait peut-être utile à certaines personnes. En tout cas j'en ai eu besoin pour des events, donc je le partage. C'est une astuce qui est globalement faite pour l'utilisation de l'EventExtender de Grim.

J'explique le principe : Supposons que l'on a deux variables notées X et Y qui servent à référencer des positions sur la map, X l'abscisse et Y l'ordonnée.
Notons Hx et Hy les positions du héros sur la map.

Supposons que l'on veuille placer un événement dans la direction dans laquelle le héros regarde, à une case de distance par exemple.

On aura alors le tableau suivant :

Direction Valeur du champ "direction" X vouluY voulu
Nord 8 Hx Hy-1
Sud 2 Hx Hy+1
Est 6 Hx+1 Hy
Ouest 4 Hx-1 Hy

Dans les events de base, la manière de faire est simple, on fait une condition par direction, puis on effectue le changement des variables dans la condition.
Cependant, ceci est très long, et s'il faut en plus imbriquer à l'intérieur d'autres conditions pour d'autres événements (par exemple, selon le héros, ne pas rajouter 1 dans la direction mais un nombre dépendant du héros), on ne s'en sort pas

Voici en gros ce dont on a besoin :



Cependant, grâce à l'Event Extender, il est possible d'obtenir la direction sous le format d'un nombre (étant 2,4,6 ou 8 ), et il serait donc possible de trouver une fonction qui permettrait d'obtenir la valeur attendue

Direction z = Valeur du champ "direction" X-Hx vouluY-Hy voulu
Nord 8 0 -1
Sud 2 0 1
Est 6 1 0
Ouest 4 -1 0

Bon, je vais pas vous faire attendre plus longtemps, en notant z la valeur de la direction, on a pour formule :
Code:
X-Hx = ((z-2)%6 - (8-z)%6)/2
Y-Hy = (6-z)/4

Et voilà donc ce qu'on obtient finalement avec l'EventExtender (cmd(:heroes_direction) permet d'obtenir la direction) :



C'est quand même bien plus simple, et c'est équivalent à ce que l'on a fait au screen 1.

Voilà, c'était juste une petite astuce pour supprimer des conditions inutiles grâce à l'EventExtender, qui, je le souligne, est nécessaire à qui veut faire de l'eventing rapide et pratique.

Edit : Oui, j'avais juste oublié un truc, je rappelle que la division euclidienne n'est pas une division classique, et que par conséquent il faut faire attention à ce qu'on écrit ! Par exemple, si on veut obtenir non pas un décalage d'une case mais de deux cases, alors on aura
Code:
Y-Hy = ((6-z)/4)*2
Cette expression n'est pas équivalente à
Code:
Y-Hy = (6-z)/2
.
Juste pour dire de bien faire attention aux factorisations !
Revenir en haut Aller en bas
 

[EventExtender] Condition de directions simplifiées

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Tutoriels :: Astuces de maker-
Créer un forum | © phpBB | Forum gratuit d'entraide | Signaler un abus | Forum gratuit