Accueil - Forum - Bibliothèque de ressources
____

Faire une vision de détection



1) Principe général

Si le héros est dans la zone détection d'un évènement, cela active cet évènement. Pour cela, nous calculerons les coordonnés de la zone de détection.

2) Les coordonnées.


Tout d'abord, il faut savoir les coordonnées du héros et de l'évènement :

Événement (à mettre dans l'évènement)

<>Commentaire : Initialisation des coordonnées
<>Variable(s) [0001: x ennemie] rendre égale à Cet évènement --> Coordonnée X
<>Variable(s) [0002: y ennemie] rendre égale à Cet évènement --> Coordonnée Y


Et du héros (à mettre dans un évènement commun où le déclenchement est "Appel")

<>Variable(s) [0003: position x héros] rendre égale à Héros --> Coordonnée X
<>Variable(s) [0004: position y héros] rendre égale à Héros --> Coordonnée Y


3) Variables et principe de la vision.

La taille de la vision de détection est la suivante :


v : le nombre de case de la vision (sur l'image, ça serait 3)
X : Abscisse de l'évènement
Y : Ordonnée de l'évènement

Si le héros est dans la zone de l'image donc entre X - v, X + v, Y - v et Y + v alors le héros sera détecté.

Nous avons 3 valeurs, donc on aura besoin de 3 variables (sans compter les deux variables des coordonnées du héros)

v qui est la vision sera définit dans l'évènement ainsi que X et Y.

4) Calcul de la vision

a) Position X du héros

Si le héros est entre X - v et X + v, cela signifie que la position du héros est inférieur X + v et supérieur à X - v.

Nous allons faire donc deux conditions pour tester cette position.

Comment vérifier si la position du héros est inférieur à X + v ? Nous allons ajouter à la variable X, la valeur de v :

<>Variable(s) [0001: x ennemie] ajouter (valeur de la variable [0005: vision])
Ensuite, nous faisons la condition :

<>Condition : si la variable [0003: position x héros] est inférieur ou égale à Variable [0001: x ennemie]

Toutes les conditions sont imbriquées (les conditions sont dans les conditions) ... c'est logique car il faut que toutes conditions soient vraies pour que le héros soit détecté.

Maintenant, il faut vérifier si la position du héros est supérieur à X - v. De la même manière, nous allons retirer la valeur de la variable v à la variable X. Attention ! La valeur de la variable de X vaut actuellement X + v. Si vous retirer la valeur de v, cela revient à revenir à la valeur X et non X - v !. Il faut donc réinitialiser la variable X et ensuite retirer la valeur de v :

<>Variable(s) [0001: x ennemie] rendre égale à Cet évènement --> Coordonnée X
<>Variable(s) [0001: x ennemie] retirer (valeur de la variable [0005: vision])


Vous pouvez faire ensuite la condition :

<>Condition : si la variable [0003: position x héros] est supérieur ou égale à Variable [0001: x ennemie]

b) Position Y du héros.

Ici, je ne vais pas dire grand chose ... puisque la démarche est la même que le paragraphe précédent. Vous devez vérifier avec des conditions la position Y du héros entre Y - v et Y + v :

<>Variable(s) [0002: y ennemie] retirer (valeur de la variable [0005: vision])
<>Condition : si la variable [0004: position y héros] est supérieur ou égale à Variable [0002: y ennemie]
  <>Variable(s) [0002: y ennemie] rendre égale à Cet évènement --> Coordonnée Y
  <>Variable(s) [0002: y ennemie] ajouter (valeur de la variable [0005: vision])
  <>Condition : si la variable [0004: position y héros] est inférieur ou égale à Variable [0002: y ennemie]


c) Détection.

L'évènement possède deux page. Vous avez sur la deuxième page, l'interrupteur local A activé pour les conditions de l'évènement. Vous pourrez mettre par un mode de déplacement. Lorsque le héros est détecté, il faut activer cet interrupteur local. Pour cela, mettez dans les conditions dans l'évènement commun, l'activation de la l'interrupteur local. Par exemple, activez l'interrupteur A :

<>Interrupteur local A activé

Remarque : Si vous voulez mettre une animation, il y a une étape ne plus à faire afin d'éviter que l'animation se répète !

d) Le héros n'est plus détecté. 

C'est la démarche contraire. Si le héros n'est plus dans la zone, on désactive l'interrupteur local A. Pour cela, il est inutile de tout refaire. Mettez seulement dans les "Sinon" des conditions créées précédemment, que vous désactivez l'interrupteur local A.

5) L'évènement

Maintenant, mettez dans l'évènement (le monstre par exemple) :

Les coordonnées (fait au début du tutorial) :

<>Commentaire : Initialisation des coordonnées
<>Variable(s) [0001: x ennemie] rendre égale à Cet évènement --> Coordonnée X
<>Variable(s) [0002: y ennemie] rendre égale à Cet évènement --> Coordonnée Y


Ensuite, appelez l'évènement commun pour les coordonnée du héros :

<>Appeler un évènement commun : Coordonnées héros

Fixez ensuite la valeur de la vision de l'évènement. Si vous voulez que la vision de l'évènement soit 3, mettez :

<>Commentaire : Vision de l'ennemi
<>Variable(s) [0005: vision] rendre égale à 3


Appelez l'évènement commun "Vision" que vous avez fait (paragraphe 4) :

<>Commentaire : Calcul de la position du héros
<>Appeler un évènement commun : Vision



6) Conclusion

Vous pourrez faire plusieurs évènement en variant la vision (grâce à la variable "vision") sans changer toutes les commandes de l'évènement. Le calcul de la vision est faite dans l'évènement commun et pourra être utiliser dans tout votre jeu et encore une fois sans changer son contenu.

Informations
Page vue 3910 fois | Auteur : Samarium

RPG Creative version 5 - Libérez votre créativité ! ; Mai 2005 - Mai 2012
0.020s - Optimisé pour une résolution 1024*728 - Tous droits réservés.

Contact - Partenaires - Historique - A propos