IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

Petage de cable (Code::Block)


Sujet :

SDL

  1. #21
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 524
    Points : 5 184
    Points
    5 184
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SDL_Color Color_menu[8]
    [...]
    Color_menu[8] = {255, 255, 255};
    déjà, ton tableau de 8 va de 0 à 7, si tu écris en 8 j'en connais un qui ne va pas apprécier

    Mais cela ne passes pas
    sinon, sans vouloir te vexer, on peut pas dire que tu sois très explicite sur les problèmes que tu rencontres
    pas facile d'aider quand on sait juste que "ça ne fonctionne pas"

    le problème c'est quoi ?
    - un plantage ?
    - une erreur de compilation ?
    - le pc reboot ?
    - zidane y va taper ?
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  2. #22
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    oui ne vous inquiete pas le huit c'etait juste une erreur de copie ^^.

    alors les erreurs qui suivent sont celle-ci:

    menu.cpp:13: error: expected primary-expression before '{' token
    menu.cpp:13: error: expected `;' before '{' token
    Quand au but de cette manoeuvre en fait ca pourrais semble bete mais c'est pour utilise une fonction rollover en dehors de la fonction init. donc en donnant une couleur a chaque item du menu.

  3. #23
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Pour comprendre l'erreur, il faut plus de code.

    Tu as sûrement oublié un ; quelque part...

    Jc

  4. #24
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 524
    Points : 5 184
    Points
    5 184
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SDL_Color Color_menu[8]
    il manque un ; à la fin de la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Color_menu[i] = {255, 255, 255};
    et ça, c'est pas possible
    il faut que tu fasses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Color_menu[i].r = 255;
    Color_menu[i].g = 255;
    Color_menu[i].b = 255;
    ou à la limite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Color_menu[i].r = Color_menu[i].g = Color_menu[i].b = 255;
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  5. #25
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    Merci beaucoup, effectivement c'est ca qu'il faire:
    Color_menu[i].r = 255;
    Color_menu[i].g = 255;
    Color_menu[i].b = 255;

    ^^ j'aurais jamais imaginer cette solution. J'ai reussi à me débrouiller autrement, meme si ta solution me sera trés certainemenet indispensable. en fessant comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for (i=0 ; i<NB_ITEM_MENU; i++)
        {
           if(Menu::Detection_Item(event.motion.x, event.motion.y, Proprietes_Item_Menu[i])
                menu[i] = TTF_RenderText_Blended(Font_menu, Libelle_Menu[i], Color_menu_over);
           else
                menu[i] = TTF_RenderText_Blended(Font_menu, Libelle_Menu[i], Color_menu);
     
           Proprietes_Item_Menu[i] = {menu[i]->w; menu[i]->HauteurEcran; (LargeurEcran/2); (HauteurEcran/9)*(i+1)}
        }
    Ca parait plus propre ^^.

  6. #26
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Proprietes_Item_Menu[i].h = menu[i]->w;
           Proprietes_Item_Menu[i].w = menu[i]->h;
           Proprietes_Item_Menu[i].x = (LargeurEcran/2);
           Proprietes_Item_Menu[i].y = (HauteurEcran/9)*(i+1)};
    Corrige une erreur ^^

  7. #27
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    - Si tu le fais comme tu l'as fait, n'oublie pas de désallouer les textures...

    - Tu ne devrais pas faire comme cela.

    Tu devrais, je pense, avant le début du programme, créer toutes les possibilités de boutons (sauf si cela prend trop de temps/mémoire) et ensuite les utiliser directement.

    Cela évitera d'avoir à recréer une 20ème fois la texture.

    - Si jamais tu penses que cela utilises trop de mémoire, mets en place un gestionnaire de ressources en place.

    Jc

  8. #28
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    Non ca peut etre une bonne idée mais je ne vois pas du tout comment fait pour changer la couleur de la surface texte sans la recree... et pour le gestionnaires de ressources je pense pas pouvoir le faire ^^.

  9. #29
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    J'ai aucune erreur de compile mais le rollover ne marche pas :'(:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    #include "menu.hpp"
    #include "main.hpp"
    #include <SDL/SDL.h>
     
    //On définis le nombre d'items du Menu
    #define NB_ITEM_MENU = 8
     
    Menu::Menu()
    {
        //On Initialise Toutes les Surfaces dans le constructeur menu
        int i;
     
        //On Définie La position à laquelle sera Le fond D'écran et Initialise le Pointeur
     
     
        //On Load l'image De Fond et Applique le Display
        Backscreen = IMG_Load("Backscreen.jpg");
        SDL_DisplayFormat(Backscreen);
     
        //On initialise Toutes les Surfaces du Menu
     
     
            for(i=0; i<8; i++)
                {
                    menu[i] = NULL;
                }
     
        // On définie Chaque Item du Menu dans un Tableau de Chaine de Caractères
        char Libelle_Menu[NB_ITEM_MENU][] =  {
                                                "Nouvelle Partie",
                                                "Charger Une Partie",
                                                "Survival Mode",
                                                "Caractéristiques du Perso",
                                                "Skin Déblokés",
                                                "Options",
                                                "Crédits",
                                                "Quitter Le Chateau De l'Infini",
                                             };
    }
     
    Menu::~Menu()
    {
        //On libére Toutes les Surfaces dans le destructeurs
        int i;
                for(int i=0; i<8; i++)
                    SDL_FreeSurface(menu[i]);
     
                SDL_FreeSurface(Backscreen);
    }
     
     
    bool Menu::init()
    {
    //On charge la ou les couleurs que l'on va utiliser pour le Texte du menu
                SDL_Color Color_menu_over = {255, 0, 0};
                SDL_Color Color_menu = {255, 255, 255};
     
                SDL_Event event;
     
    //On charge la Fonte que l'on va utiliser pour le menu ( à préférer des images pour la maintenance et les updates )
        Font_menu = TTF_OpenFont("verdana.ttf", 25);
     
    //On charge toutes les les surfaces associées au Menu On les detect et Associe la Structure;
    int i;
     
      for (i=0 ; i<8; i++)
        {
           if(Menu::Detection_Item(event.motion.x, event.motion.y, Proprietes_Item_Menu[i]))
                    {
                        menu[i] = TTF_RenderText_Blended(Font_menu, "Libelle_Menu[i]", Color_menu_over);
                    }
           else
                    menu[i] = TTF_RenderText_Blended(Font_menu, "Libelle_Menu[i]", Color_menu);
     
           Proprietes_Item_Menu[i].h = menu[i]->w;
           Proprietes_Item_Menu[i].w = menu[i]->h;
           Proprietes_Item_Menu[i].x = (LargeurEcran/2);
           Proprietes_Item_Menu[i].y = (HauteurEcran/9)*(i+1);
        }
     
        return true;
    }
     
    void Menu::Afficher_Menu(SDL_Surface *Ecran)
    {
       SDL_BlitSurface(Backscreen, NULL, Ecran, &PositionBackscreen);
     
        int i;
         for(i=0 ; i<8; i++)
            {
                SDL_BlitSurface(menu[i], NULL, Ecran, &Proprietes_Item_Menu[i]);
            }
     
    }
     
    bool Menu::Detection_Item(int x, int y, SDL_Rect Item)
    {
        if((Item.x<x)&&((Item.x+Item.w)<x)&&(Item.y<y)&&((Item.y+Item.h)<y))
        return 1;
        else return 0;
    }
    Il m'affiche toujours le texte en blanc comme si la fonction detect_item renvoyais toujours 0... . une petit idée s'il vous plait ?

  10. #30
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    En fait je viens de comprendre ce que tu veux dire ^^. Je fais 16 texture à la place de 8. et j'affiches celle donc j'ai besoin.... Desoler de ne pas avoir tilté tout de suite ^^.

  11. #31
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    En résumer. C'est cette fonction qui ne semble pas fonctionner...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    bool Menu::Detection_Item(int x, int y, SDL_Rect Item)
    {
        if((Item.x<x)&&((Item.x+Item.w)<x)&&(Item.y<y)&&((Item.y+Item.h)<y))
        return 1;
        else return 0;
    }

  12. #32
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Le deuxième et le quatrième < devraient être des >. Là ça te détecte tout ce qui est strictement à droite de ton item.

  13. #33
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    Voui mais le rollover ne se fait jamais, en fait la fonction ou que je soit renvoi toujours 0, meme apres la modification.

  14. #34
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    Si cette fonction ne fonctionne pas, pensez vous que c'est à l'appel de celle-ci à cause du passage des arguments event.motion.x et event.motion.y ?

  15. #35
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par kirua_sama
    Si cette fonction ne fonctionne pas, pensez vous que c'est à l'appel de celle-ci à cause du passage des arguments event.motion.x et event.motion.y ?
    Il faut utiliser un debugger pour vérifier que :

    - le passage de paramètres se fait correctement
    - les valeurs de ta structure Item
    - Le fait que le test se fasse correctement

    Ceci se fait avec un joli debugger.

    Ensuite, on pourra discuter de comment tu lies cela au reste du programme

    Jc

  16. #36
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    Le problème c'est que je n'arrive pas du tout à utilise le debugeur ( par default celui de code::block) et il ne marque aussi aucun point d'arrêt lorsque j'en met .... je sais pas trop comment faire alors.

  17. #37
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par kirua_sama
    Le problème c'est que je n'arrive pas du tout à utilise le debugeur ( par default celui de code::block) et il ne marque aussi aucun point d'arrêt lorsque j'en met .... je sais pas trop comment faire alors.
    Alors remet à jour ton projet et donne un lien pour qu'on puisse y jeter un coup d'oeil

    Jc

  18. #38
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    Merci, la j'ai entrainement j'essay de faire ca se soir. Mais au fait pk êtes vous si gentil ??

  19. #39
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 524
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 524
    Points : 5 184
    Points
    5 184
    Par défaut
    ah non hein, commence pas moi chui un méchant, un vrai, un dur, enfin j'essaye mais j'y arrive pas

    bon ok, c'est juste que la programmation c'est notre passion
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  20. #40
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 104
    Points : 38
    Points
    38
    Par défaut
    greeedisland.Free.FR/MakubeX.rar . Merci tout le monde et désoler pour le retard je croule vraiment sous le boulot.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. [Débutant] Compiler glu.h sous Code::Blocks
    Par allanp8 dans le forum OpenGL
    Réponses: 10
    Dernier message: 18/11/2007, 00h56
  2. Code blocks ajouter un .lib
    Par gl0be dans le forum Code::Blocks
    Réponses: 7
    Dernier message: 09/09/2006, 15h04
  3. [Code::Block] Traduction francaise?
    Par Zenol dans le forum Code::Blocks
    Réponses: 3
    Dernier message: 20/02/2006, 16h06
  4. [code::blocks] Completion de code
    Par anykeyh dans le forum Code::Blocks
    Réponses: 1
    Dernier message: 20/12/2005, 16h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo