AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  



Le deal à ne pas rater :
Code promo Nike : -25% dès 50€ d’achats sur tout le site Nike
Voir le deal

Partagez
 

 [EventExtender] Condition de directions simplifiées

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



[EventExtender] Condition de directions simplifiées  Empty
MessageSujet: [EventExtender] Condition de directions simplifiées    [EventExtender] Condition de directions simplifiées  Icon_minitimeVen 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 :

[EventExtender] Condition de directions simplifiées  Astuce1

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) :

[EventExtender] Condition de directions simplifiées  Astuce2

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

 Sujets similaires

-
» Gestion des directions des PNJ's
» Deplacement 4 directions
» [VX] Marcher dans les 8 directions
» Marché 8 directions, en plus approfondi...
» Aller dans les 8 directions sur VXAce

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 | Cookies | Forum gratuit