Go lire ce tutoriel : http://www.rpg-maker.fr/tutoriels-176-joke-s-tuts-5-base-de-programmation-les-zones-par-variables-.html
Tu pourras faire les champs de vision/détection que tu veux avec ça.
Il manque seulement, dans ce tutoriel, la zone en cercle et la zone en losange :
Losange :
A partir d'une propriété géométrique du losange (Pas difficile à comprendre, avec le dessin) :
|x| représente l'absolu de la valeur x, d'où le fait qu'on multiplie par -1 si XH-XM est négatif, pour le remettre positif :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| A = X écran Héros
A soustraire X écran Monstre
Si A < 0
A multiplier -1
Fin de condition
B = Y écran Héros
B soustraire Y écran Monstre
Si B < 0
B multiplier par -1
Fin de condition
A additionner B
Si A < distance maximale en pixel entre le héros et le monstre (Centre et une extrémité du losange)
Le héros est dans le losange
Fin de condition |
Cercle/Distance :
Simple application de pythagore, a²=b²+c²... Sauf que pour faire le carré on multiplie la variable par elle-même : a²=a*a, et on calcule à la main le carré du rayon pour la condition.
1
2
3
4
5
6
7
8
9
10
| A = X écran héros
A soustraire X écran monstre
A multiplier par A
B = Y écran héros
B soustraire Y écran monstre
B multiplier par B
A additionner B
Si A < carré du rayon en pixel du cercle, calculé à la main (Pour un cercle de rayon 5 > 5²=5*5=25)
Le héros est dans le cercle
Fin de condition |
C'est aussi facilement faisable de faire une zone elliptique, ou un losange écrasé, c'est juste une question de multiplication/division.
|