| | Afficher des coups critiques | |
| | Auteur | Message |
---|
diditigrou Pas mal
Messages : 34
| Sujet: Afficher des coups critiques Mer 20 Jan 2016 - 18:12 | |
| Bonsoir, Avec votre aide mes attaques fonctionnent correctement et j'ai implémenté en plus un système de jet d'attaque et de jet de parade, ainsi qu'un système de dégâts critiques quand l'attaque est bien supérieure à la défense. Par contre, je ne sais pas comment faire pour que mes coups critiques apparaissent d'une autre couleur/taille que ceux des dégâts normaux. Je vous mets le code d'attaque et celui d'affichage des dégâts. - Code:
-
rebours = 1 * room_speed;
if ((point_distance(heros_object.x, heros_object.y, goblin.x, goblin.y)) <= heros_object.portee) && (((irandom_range(1,6)+irandom_range(1,6)+irandom_range(1,6)+irandom_range(1,6)+irandom_range(1,6))+ heros_object.attaque_rapproche) >= ((irandom_range(1,6)+irandom_range(1,6)+irandom_range(1,6)+irandom_range(1,6)+irandom_range(1,6))+ goblin.parade)) if (((irandom_range(1,6)+irandom_range(1,6)+irandom_range(1,6)+irandom_range(1,6)+irandom_range(1,6))+ heros_object.attaque_rapproche) - ((irandom_range(1,6)+irandom_range(1,6)+irandom_range(1,6)+irandom_range(1,6)+irandom_range(1,6))+ goblin.parade)) > 7 { heros_object.degats = (irandom_range(heros_object.degats_min,heros_object.degats_max))*2; gob_vie -= heros_object.degats; } else { heros_object.degats = irandom_range(heros_object.degats_min,heros_object.degats_max); gob_vie -= heros_object.degats; } - Code:
-
black = make_color_rgb(0,0,0); red = make_color_rgb(255,0,0); green = make_color_rgb(0,255,0); draw_healthbar(goblin.x-25, goblin.y-25, goblin.x+25, goblin.y-30, gob_vie * (20/3), black, red, green, 0, 1, 1);
//texte pour les dégâts if ((point_distance(heros_object.x, heros_object.y, goblin.x, goblin.y)) < heros_object.portee) { draw_set_halign(fa_center); // On aligne le texte au centre, sinon le texte sera décalé. if (rebours > 0) // On vérifie que le compte à rebours ne soit pas terminé { draw_text(x, y - 45, heros_object.degats); // On affiche les dégâts arrondis à l'unité rebours -= 1; } draw_set_halign(fa_left); // On remet l'alignement par défaut, pour éviter de décaler du texte ailleurs censé être aligné à gauche } else {}; Est-il possible de simplifier mon code d'attaque ? Parce que là si ça continue, je vais avoir des if derrière des if derrière des if... |
| | | GDOR1 Très bonne participation
Messages : 130
| Sujet: Re: Afficher des coups critiques Mer 20 Jan 2016 - 18:48 | |
| Pour afficher différemment les coups critiques, tu as les fonctions draw_set_color et draw_set_font. Après tu n'as plus qu'à créer un font pour les coups critiques, et le choisir avant de dessiner le texte. Après il te reste à trouver un moyen de savoir si c'est un coup critique, et faire une condition. Je pencherais pour une variable dans l'objet gobelin, qui se met sur 1 à chaque coup critique, puis se remet sur 0 quand rebours == 0.
Après pour simplifier ton code d'attaque, je comprends pas trop à quoi servent tous les irandom_range(1,6). Ce ne serait pas plus simple de mettre irandom_range(5,30) plutôt que 5 fois irandom_range(1,6) ? |
| | | diditigrou Pas mal
Messages : 34
| Sujet: Re: Afficher des coups critiques Mer 20 Jan 2016 - 19:39 | |
| Je regarderai cela pour l'affichage.
Concernant les 5 irandom_range, c'est pour simuler le jet de 5 dés. |
| | | hyper Utilisateur confirmé: Rang ****
Messages : 1455
| Sujet: Re: Afficher des coups critiques Mer 20 Jan 2016 - 20:24 | |
| - GDOR1 a écrit:
- Après pour simplifier ton code d'attaque, je comprends pas trop à quoi servent tous les irandom_range(1,6). Ce ne serait pas plus simple de mettre irandom_range(5,30) plutôt que 5 fois irandom_range(1,6) ?
Ton pentadé aura autant de chances de donner 5 que 10 ou 30 ou n'importe quelle valeur. Alors que 5 dés séparés auront plus de chance de donner la médiane (ici 17 ou 18) que 5 ou 30 Mais ça reste inutile _________________ côt.
|
| | | diditigrou Pas mal
Messages : 34
| Sujet: Re: Afficher des coups critiques Dim 24 Jan 2016 - 17:43 | |
| Cela reste inutile de faire 5 dés ? Voici le code que j'ai mis, d'après mes tests, on dirait que ça fonctionne : - Code:
-
black = make_color_rgb(0,0,0); red = make_color_rgb(255,0,0); green = make_color_rgb(0,255,0); draw_healthbar(goblin.x-25, goblin.y-25, goblin.x+25, goblin.y-30, gob_vie * (20/3), black, red, green, 0, 1, 1);
//texte pour les dégâts if (((point_distance(heros_object.x, heros_object.y, goblin.x, goblin.y)) < heros_object.portee)&&(heros_object.attaque = 1)&&(heros_object.critique =1)) { draw_set_colour(red); // On met la couleur en rouge draw_set_halign(fa_center); // On aligne le texte au centre, sinon le texte sera décalé. if (rebours > 0) // On vérifie que le compte à rebours ne soit pas terminé { draw_text(x, y - 45, (heros_object.degats * 2)); // On affiche les dégâts arrondis à l'unité rebours -= 1; } draw_set_colour(black); // On met la couleur en noir } else { if (((point_distance(heros_object.x, heros_object.y, goblin.x, goblin.y)) < heros_object.portee)&&(heros_object.attaque = 1)) { draw_set_halign(fa_center); // On aligne le texte au centre, sinon le texte sera décalé. if (rebours > 0) // On vérifie que le compte à rebours ne soit pas terminé { draw_text(x, y - 45, heros_object.degats); // On affiche les dégâts arrondis à l'unité rebours -= 1; } } else {}; } draw_set_halign(fa_left); // On remet l'alignement par défaut, pour éviter de décaler du texte ailleurs censé être aligné à gauche |
| | | Contenu sponsorisé
| Sujet: Re: Afficher des coups critiques | |
| |
| | | | Afficher des coups critiques | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |