Probleme Conversion

Probleme Conversion - C++ - Programmation

Marsh Posté le 22-09-2006 à 13:24:40    

Citation :

while (Marche)
    {
        SDL_WaitEvent(&event);
            switch (event.type)
            {
 
                 case SDL_MOUSEMOTION:
            PositionCurseur.x = event.motion.x;  
            PositionCurseur.y = event.motion.y;
            break;
 
 
                case SDL_KEYDOWN:
                  switch (event.key.keysym.sym)
                        {
                            case SDLK_ESCAPE:
                                Marche = 0;
                                break;
                        }
            }
 
    char chaine[9] = "";
    itoa(PositionCurseur.x,chaine,10);
    Text_PositionCurseur = TTF_RenderText_Blended(Fonte,chaine, Blanc);
        if (550<PositionCurseur.x && PositionCurseur.x < 580)
            {
                Text_Quitter = TTF_RenderText_Blended(Fonte, "Quitter", Rouge);
            }
        else
            {
                Text_Quitter = TTF_RenderText_Blended(Fonte, "Quitter", Blanc);
            }
 
         SDL_BlitSurface(Text_Quitter, NULL, ecran, &PositionQuitter);
            SDL_BlitSurface(Text_PositionCurseur, NULL, ecran, &PositionBackscreen);
            SDL_Flip(ecran);
            SDL_FreeSurface(Text_Quitter);
            SDL_FreeSurface(Text_PositionCurseur);
    }


 
 
Voila mon code, je crois que la conversion en chaine de caractere de la position du curseur pose probleme mais je ne vois pas de quel facon le resoudre, si quelqu'un peut me dire ou ca merde merci. ( ca m'affiche des chiffres l'un au-dessus de l'otre et fini par faire des carres blanc.)


Message édité par kirua_sama le 22-09-2006 à 13:24:58
Reply

Marsh Posté le 22-09-2006 à 13:24:40   

Reply

Marsh Posté le 22-09-2006 à 14:07:11    

T'as pas de debugger pour voir où ça plante et vérifier la valeur de tes variables ?

Reply

Marsh Posté le 22-09-2006 à 14:19:48    

Bah le debugger de Code Bloc déconne mais j'ai verifier les valeurs que peuvent prendre PositionCurseur.x avec:
 

Code :
  1. if (550<PositionCurseur.x && PositionCurseur.x < 580)


 
et je vois bien le texte changer de couleur, donc c'est bien à l'affichage ou à la conversion qu'il merde. ( et comme y'a pas de Doc pour la biblio SDL_ttf ... ). Merci en tout cas.
 
 
J'ai trouver le Probleme, c'est bien à l'affichage, il ne libere pas la surface et place les chiffre les uns au dessus des otres.


Message édité par kirua_sama le 22-09-2006 à 14:24:28
Reply

Marsh Posté le 22-09-2006 à 14:34:15    

J'ai regler mon probleme c'etait juste une petite erreur toute bete... je ne reinitialiser pas mon ecran, la convertion etait bonne...
 
Ca donne ca Desole de vous avoir derange.
 

Code :
  1. Backscreen = IMG_Load("Backscreen.jpg" );
  2.     SDL_DisplayFormat(Backscreen);
  3.     while (Marche)
  4.     {
  5.         SDL_WaitEvent(&event);
  6.             switch (event.type)
  7.             {
  8.                  case SDL_MOUSEMOTION:
  9.             PositionCurseur.x = event.motion.x; /* On change les coordonnées de Zozor */
  10.             PositionCurseur.y = event.motion.y;
  11.             Temp.x = event.motion.x;
  12.             Temp.y = event.motion.y;
  13.             break;
  14.                 case SDL_KEYDOWN:
  15.                   switch (event.key.keysym.sym)
  16.                         {
  17.                             case SDLK_ESCAPE:
  18.                                 Marche = 0;
  19.                                 break;
  20.                         }
  21.             }
  22.     char chaine[9] = "";
  23.     itoa(PositionCurseur.x,chaine,10);
  24.     Text_PositionCurseur = TTF_RenderText_Blended(Fonte,chaine, Blanc);
  25.         if (550<PositionCurseur.x && PositionCurseur.x < 580)
  26.             {
  27.                 Text_Quitter = TTF_RenderText_Blended(Fonte, "Quitter", Rouge);
  28.             }
  29.         else
  30.             {
  31.                 Text_Quitter = TTF_RenderText_Blended(Fonte, "Quitter", Blanc);
  32.             }
  33. SDL_FillRect(ecran, NULL, SDL_MapRGB(ecran->format, 255, 0, 255));
  34.     SDL_BlitSurface(Backscreen, NULL, ecran, &PositionBackscreen);
  35.          SDL_BlitSurface(Text_Quitter, NULL, ecran, &PositionQuitter);
  36.             SDL_BlitSurface(Text_PositionCurseur, NULL, ecran, &Temp);
  37.             SDL_Flip(ecran);
  38.             SDL_FreeSurface(Text_Quitter);
  39.             SDL_FreeSurface(Text_PositionCurseur);
  40.             SDL_Flip(ecran);
  41.     }

Reply

Marsh Posté le 22-09-2006 à 14:35:44    

Par contre, Est ce que vous saver comment je peux faire pour travailler en fullscreen ( Est-ce que je doit faire des modes en fonction de la resolution ou bien y'a t-il une solution pour addapter la position de mes element en fonction de la largeur etc... ?, toujours en gardant les proportionnalite. ).


Message édité par kirua_sama le 22-09-2006 à 14:40:15
Reply

Marsh Posté le 22-09-2006 à 15:24:01    

y'a une des premières leçons sur nehe.gamedev.net qui possède des exemples avec sdl, et qui gère le changement windowed/fullscreen

Reply

Marsh Posté le 22-09-2006 à 17:33:37    

je veux bien te croire ... xD. Merci, et tu sais pas ca se situe vers ou ?

Reply

Marsh Posté le 22-09-2006 à 17:39:44    

ben sur nehe.gamedev.net, dans les lessons ...


---------------
Töp of the plöp
Reply

Marsh Posté le 22-09-2006 à 17:57:20    

Rien trouver de tel, il en vient toujours à utiliser l'opengl. Enfin je te remercie.

Reply

Marsh Posté le 22-09-2006 à 18:20:55    

A et une super Question je crois qu'il n'y a pas de fonction qui gere les objet directement dans la SDL je voudrai faire une classe ou il y a defini mon texte, pour que je puisse faire un rollover sur le texte directement et non sur une zone définie. Quelqu'un aurait une idee de comment je pourrais m'y prendre?

Reply

Marsh Posté le 22-09-2006 à 18:20:55   

Reply

Marsh Posté le 22-09-2006 à 19:37:31    

kirua_sama a écrit :

Rien trouver de tel, il en vient toujours à utiliser l'opengl. Enfin je te remercie.


oui, y'a du opengl, mais y'a surtout du fullscreen dans les sources version SDL


---------------
Töp of the plöp
Reply

Marsh Posté le 22-09-2006 à 20:16:27    

oue mais il utilise le fullscreen que pour intialiser et pour regler les probleme lie a la taille le positionement etc... il utilise l'opengl.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed