AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 Afficher des coups critiques

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
diditigrou
Pas mal


Messages : 34

MessageSujet: Afficher des coups critiques   Mer 20 Jan 2016 - 17: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...
Revenir en haut Aller en bas
GDOR1
Très bonne participation
avatar

Messages : 130

MessageSujet: Re: Afficher des coups critiques   Mer 20 Jan 2016 - 17: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) ?
Revenir en haut Aller en bas
diditigrou
Pas mal


Messages : 34

MessageSujet: Re: Afficher des coups critiques   Mer 20 Jan 2016 - 18:39

Je regarderai cela pour l'affichage.

Concernant les 5 irandom_range, c'est pour simuler le jet de 5 dés.
Revenir en haut Aller en bas
hyper
Utilisateur confirmé: Rang ****
avatar

Messages : 1432

MessageSujet: Re: Afficher des coups critiques   Mer 20 Jan 2016 - 19: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 Wink
Mais ça reste inutile Razz

_________________
côt.
Revenir en haut Aller en bas
https://hyperdev.wordpress.com/
diditigrou
Pas mal


Messages : 34

MessageSujet: Re: Afficher des coups critiques   Dim 24 Jan 2016 - 16: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
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: Afficher des coups critiques   

Revenir en haut Aller en bas
 
Afficher des coups critiques
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Vos remèdes naturels pour les coups de soleil...
» Pourquoi 400 dans l'expression "Faire les 400 coups" ?
» [Hollandeland] Toutes les déclarations, critiques, bourdes
» les 12 coups de Noël avec Evelyne
» Afficher ses horaires sur la porte du cabinet ?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide débutants-
Sauter vers: