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



-25%
Le deal à ne pas rater :
-25% Samsung Odyssey G9 G95C – Ecran PC Gamer 49″ Incurvé
599 € 799 €
Voir le deal

Partagez
 

 [Event Extender] Distances et zones

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



[Event Extender] Distances et zones Empty
MessageSujet: [Event Extender] Distances et zones   [Event Extender] Distances et zones Icon_minitimeMer 5 Sep 2012 - 6:06

Les distances
J'ai lu avec intérêt l'excellent tutoriel de jin sur la gestion des distances et... omg ce que c'est compliqué !
Nous allons ici réaliser un chien qui s'énerve quand on s'approche à moins de case de lui, pour cela, nous allons utiliser:
Code:
cmd(:distance_between_squares, id1, id2)
Qui nous donnera la distance entre l'evenement référencé par l'id1 et l'évènement référencé par l'id2... (l'id du héros étant toujours le 0) !
Voici comment faire dans un évènement en processus parallèle qui est notre chien:
[Event Extender] Distances et zones WnycgapxWRJB4qGnOqZN64Is9
Facile non? Il suffit d'appeller dans une condition et de choisir la section Script et de lui demander si
cmd(:distance_between_squares, 0, 1) < 4
donc si la distance entre l'event 0 (le héros) et l'event 1 (le chien) est inférieur à 4... Notre chien sautera sur place en aboyant !
Notez qu'il existe une variante, la commande cmd(:distance_between_pixels, 0, 1) qui donnera la distance en pixel.
Lien vers la doc : Ici (référence des commandes aux events)

Les zones
Imaginons cette super map !
[Event Extender] Distances et zones Hl02R9vYq8s5WfSD4qiPvyWVr
J'aimerai de tout coeur que quand je sois dans la zone blanche, la neige se mette a tomber !
Pour ça j'ai une fonction toute faite qui me facilite la tâche !
Lien vers la doc !
Code:
cmd(:create_area, :rectangle,x1,y1,x2,y2)
Je n'ai qu'a spécifer x et y du point 1 et x et y du point 2 ^^ Smile (le point 1 étant le coin haut gauche de la zone et le point deux et le point bas droit de la zone).

Dans mon cas, la zone est située en (3,9),(15,19).
Je vais donc créer une zone que je lierait a une variable local !
En faisant ceci:
Code:

set(1, cmd(:create_area, :rectangle, 3, 9, 15, 19))
Le tout dans un évènement en processus parallèle.
Une fois de plus je vais créer une boucle (avec mon attendre 1 frame) et c'est dedans que je vais vérifier si un point est dans la zone en utilisant la fonction in_area?(x, y).
Dans mon cas, elle s'utilisera comme ça
Code:

get(1).in_area(x, y)
(get(1) correspond à notre zone).
Voici donc comment j'ai procédé pour qu'il neige quand je suis au bon endroit sur la carte:
[Event Extender] Distances et zones Y4SCPfD2uXnXssdptLPP7MFlO
Facile non? J'aurais pu aussi faire directement ça:
[Event Extender] Distances et zones 7m91VPkLtxTF2VVNwqeiecJGk

Les zones sont purement virtuelle, donc j'aurais pu utiliser les coordonnées en pixel mais alors il aurait fallu multiplier les coords du héros par 32 (et oui, une case = 32pixels).

Je vous invite à consulter la documentation, il existe plusieurs autres zones comme des zones circulaires, en ellipse, ou même des polygones complexes !
Par exemple :
Spoiler:
Avec une zone polygonale il est possible très facilement de savoir si un point (par exemple les coordonnées de la souris) est sur une des zones violette de l'étoile en définissant les points dans la zone.


J'espère que ce tutoriel vous aura été utile !
Ciao !
Revenir en haut Aller en bas
 

[Event Extender] Distances et zones

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

 Sujets similaires

-
» [Event Extender] Créer facilement une jauge
» [XP, VX, VXAce] Event Extender, Le Grimator !
» [VXAce] L'Event Extender 4 (Le grimimimator)
» [VXAce] Event Extender, Pathfinder
» [VXAce] Event Extender, Le Grimator !

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Tutoriels :: Tutoriels VX :: Tutoriel d'événement (event) :: Divers-
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Cookies | Forum gratuit