
| je sait que ce tuto date, mais j'ai trouvé quelque chose d'intéressant sur le tir sans projectile (avec 10 ennemis).
et je ne m'embête pas la vie avec toutes les variables X et Y de tous les ennemis, juste les HP
sur event commun,on ouvre une boucle sans refresh
les variables X et Y de la balle sont d'abord réglés sur la position du héros, ensuite selon la direction, se déplace à la vitesse quasi instantanée dans la boucle
à chaque tour de boucle, il est possible d'enregistrer l'ID du terrain ou l'ID d'un event se trouvant à la position "Xballe" et "Yballe"
on fait les 2
pour les endroits de la map où l'on pense que la balle ne peut pas passer, il faut régler tous les numéros d'ID de terrain des murs et des armoires, enfin bref, tout ce qui peut stopper la course, sur un nombre non encore utilisé (par exemple 23), et si la balle se trouve sur un terrain de numéro 23, on sort de la boucle et le tir revoie un ID d'event égal à ce qui se trouve sur le mur (0 si il n'y a rien)
ensuite, il faut demander quel numéro d'évènement est présent, si l'on trouve un nombre entre 1 et 10 (selon le nombre d'ennemis) alors, dans ce cas, on arrête la balle et on revoie la variable "N° event" et on passe à la suite du prog
si le N° d'event est 0, ça veut dire qu'il y a rien, il ne se passe rien
si le N° est supérieur au nombre maxi d'ennemis (ici, 10), pareil
La est le plus compliqué, car pour faciliter la liaison N° event <=> variable HP
vaudrait mieux poser en premier les 10 ennemis et ensuite on fait le mapping (ou sinon faites des couper coller sur les 10 premiers events)
ensuite, 10 variables "HP1" "HP2" "HP3" etc...
dans les positions par exemple 21 22 23 etc (respectivement)
notez bien que : position variable X + 20 = N° ID event X
et la est le plus balèze, le plus risqué du prog :
les events ennemis sont placés les 10 premiers avec comme hp
ID event = unité de numéro de variable (qu'importe les dizaines)
chaque event "ennemi" possède 2 pages :
1ere "je suis touché" (appui d'une touche)
2e "je te touche" (contact event/héros)
si le tir (Xballe Yballe) est sur l'event 5
déclencher event 5, page 1
on sort de l'évent commun
dans la page 1 doit se trouver :
force héros -> variable F
dans l'exemple, Variable [20 + N° event] --> Hp moins
le 20 peut être autre chose si on a mis les 10 hp ennemis ailleurs
Hp moins - F
si Hp moins =< 0
téléporter l'event en un point inaccessible et effacer
sinon rendre la valeur d'après la variable [20 + N° event] égale à Hp moins
et flasher l'event pour dire qu'il est touché
et voila !! les HP de l'ennemi 5 ont étés réduits de F points de vies
dans la 2e page, c'est plus simple, c'est "dommages au héros" et "stopper un petit moment l'évent" pour laisser au héros le temps de fuir
j'ai testé de nombreuses fois, et finalement, je ne vois pas de bugs, ça gère les obstacles, les hp's et le tir auto (oops, cela se trouve dans un autre event commun) (tant pis, ça marche!)
|