Drag and drop ou GML ?
ça fait trop longtemps que je n'ai pas touché au Drag & Drop, alors ça sera GML.
Cassons ton problème en petits morceaux résolvables.
1) Vie et résistance aux tir d'un ennemi
2) Intelligence Artificielle basique pour un ennemi
1)
Les deux se résument en gros à la même chose (sauf si tu veux faire des actions spéciales genre bouclier. Mais commençons simplement).
Quand ton boss est crée, il faut lui donner de la vie. Mettons par exemple 100 points de vie.
Posons nous dans l'évent create (
)
ça donne en GML :
- Code:
-
vie = 100;
et en D&D :
[Icône set variable][Nom:vie][Valeur:100][Mode:Absolu]
Ensuite, quand le boss se reçoit un objet balle (enfin, si tu tire des balles, sinon, quand il se prends un coup), il faut qu'il perde de la vie. La perte de vie est en fonction de la puissance de l'arme du joueur et de la résistance du boss. Mais je pense qu'on va juste la fixer pour faire simple. Ici, perdre 5 points de vie chaque fois qu'il est touché nécessite 20 coups pour en venir à bout. Pour aller plus ou moins vite, augmente sa vie de départ, ou diminue les dégâts de la balle.
Posons nous dans l'évent collision (
)
ça donne en GML :
- Code:
-
vie -= 5;
et en D&D :
[Icône set variable][Nom:vie][Valeur:-5][Mode:Relatif]
Enfin, quand le boss n'as plus de vie, il faut qu'il meure (muhaha !). Pour se faire, on va, à chaque étape du jeu (step, en gros un peu avant chaque affichage d'une image) vérifier si sa vie est bien supérieure à zéro. Pourquoi supérieure et pas égale ? Là, on à choisi de perdre 5 points de vie, et il commence à 100, on atteindra donc un beau 0 propre à un moment. Mais si pour une raison quelconque, tu veux que le boss commence à 97 points de vie, ou que la balle inflige 4 points de dégâts, il est plus que probable que tu n'atteigne jamais un 0 propre et que tu passe, par exemple, de 3 points de vie à -1. Donc, on vérifie que sa vie soit bien SUPERIEURE à zéro, sinon, on le tue.
Posons nous dans l'évent step (
)
ça donne en GML :
- Code:
-
if( vie <= 0 )
{
instance_destroy();
}
et en D&D :
[Icône test variable][Nom:vie][Valeur:0][Operation:Plus grand que][Mode:NOT]
[Icône start of block]
[Icône destroy instance]
[Icône end of block]
Et voilà. Un ennemi avec de la vie qui descend gentiment puis meure quand il à plus de vie.
Pour la partie affichage, je largue en vrac des résultats de recherche du forum :
https://cbna.forumactif.com/t6118-script-barre-de-vie-avanceehttps://cbna.forumactif.com/t6156-barre-de-viehttps://cbna.forumactif.com/t9251-comment-faire-une-barre-de-vie-qui-suit-la-viewhttps://cbna.forumactif.com/t5008-barre-de-vie-avec-des-sprites2)
Là, c'est plus simple. Si le héro est (trop) proche du monstre, il attaque.
Donc, à chaque step, on regarde la distance entre le monstre et le héro, et si elle est trop faible, on génère une riposte (ici, on tire une balle, j'ai la flemme de faire autre chose).
Posons nous dans l'évent step (
)
ça donne en GML :
- Code:
-
if( distance_to_object(obj_hero) < 128 )
{
instance_create(obj_ball, x,y);
}
et en D&D :
[Icône test expression][Expression:distance_to_object(obj_hero) < 128]
[Icône start of block]
[Icône create instance][Object:obj_ball][X:0][Y:0][Mode:Relative]
[Icône end of block]
Et voilà, en espérant que ça t'aura aidé ^^
(vache, ça faisait 20 ans que j'avais pas fait de mini tuto comme ça O.ô )