Pour corser, tu peux faire des obstacles que le monstre esquive dans son déplacement en se déplaçant en diagonal, (Et faire le monstre qui se déplace en diagonal tout le temps d'ailleurs quand le héros va de gauche à droite) si les obstacles ne font qu'un carreaux tu peux faire qu'il les esquive automatiquement en faisant :
(J'ai pas VX sur cet ordi alors je ne peux pas vérifier, il y a une case "ignorer si impossible" à cocher dans les déplacements ? Si oui tu la coche pour tous les déplacements, si ça n'existe pas je dis après des // ce qu'il faut mettre à la place et... Le monstre ne sera pas foutu d'esquiver les obstacles, mais tu peux le mettre en mode fantôme, et même faire qu'il défonce les obstacles sur son passage)
*en boucle dans un processus parallèle :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
<>Modifier variable X = Position X Héros
<>Modifier variable X soustraire Position X Monstre
<>Modifier variable Y = Position Y Héros
<>Modifier variable Y soustraire Position Y Monstre
Si variable Y > 0
Si variable X > 0
<>Déplacer "Monstre" : pas droite/bas
Sinon
Si variable X < 0
<>Déplacer "Monstre" : pas gauche/bas
Sinon
<>Déplacer "Monstre" : Pas vers le bas, Pas gauche/bas, Pas droite/bas
//(Juste "pas vers le bas" si le "ignorer si impossible" n'existe pas)
Fin de condition
Fin de condition
Sinon
Si variable Y = 0
Si variable X > 0
<>Déplacer "Monstre" : pas droite
Sinon
Si variable X < 0
<>Déplacer "Monstre" : pas gauche
Sinon
<>Le héros s'est fait chopé
Fin de condition
Fin de condition
Sinon
Si variable X > 0
<>Déplacer "Monstre" : pas haut/droite
Sinon
Si variable X < 0
<>Déplacer "Monstre" : pas haut/gauche
Sinon
<>Déplacer "Monstre" : Pas haut, Pas haut/gauche, Pas haut/droite
// (Juste "Pas haut" si "Ignorer si impossible n'existe pas")
Fin de condition
Fin de condition
<>Attendre 2 frames |
Ensuite si tu veux que le monstre apparaisse dans la nouvelle map qu'une fois qu'il ait réellement quitté l'ancienne map, une chose simple à faire c'est de faire toute tes map dans une seule (Ingame on ne voit pas les autres couloirs car ils sont hors de l'écran), comme ça normalement quand tu téléporte le héros vers la même map, les événements ne retournent pas dans leur place initiale et tu peux donc faire en sorte de changer la position du monstre ou activer le nouveau monstre quand le précédent a fini la salle précédente.
Le chalenge pour le joueur sera de se déplacer le moins possible de gauche à droite pour pas que le monstre le rattrappe avec l'avantage de ses déplacements en diagonal, mais comme le monstre a cet avantage, tu peux le faire avec une vitesse inférieure d'un cran par rapport au héros, pour le peu qu'il y ait assez d'obstacles d'un carreaux pour corser le tout
EDIT : Donc, si "ignorer si impossible" n'existe pas, ou tout simplement si tu préfère que le monstre défonce tous les obstacles sur son passage, tu reproduis le code en faisant ce qu'il y a de noté après les //, avec le monstre en mode "Fantôme/Passe partout", et tu peux faire des obstacles de plus d'un carreau de large, en utilisant un événement à l'apparence de l'obstacle pour chaque carreau d'obstacle, chacun en processus parallèle avec à l'intérieur :
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<>Modifier variable X = Position X Cet événement
<>Modifier variable X soustraire Position X Monstre
<>Modifier variable Y = Position Y Cet événement
<>Modifier variable Y soustraire Position Y Monstre
Si X = 0
Si Y = 0
<> Animation : Cet événement : Explosion qui tue digne d'un film américain
<> Effacer cet événement
Fin de condition
Fin de condition
Attendre 2 frame
|
EDIT2 : Du coup si tu fais ça, plus tous les couloirs dans une même map, il faudra que quand le héros arrive dans la nouvelle map, le monstre se déplace simplement vers le bas jusqu'à atteindre la fin de la map précédente au lieu de se déplacer vers la nouvelle position du héros qui sera p'tet plus vers le bas du coup.
|