Bonjour, j'essaye de programmer un jeu, dans le cadre de mes études mais je rencontre quelques soucis avec la ttf, je n'arrive pas à afficher le score de mes joueurs.
voici les deux fonctions que j'utilise :
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
void
showMessageScreen(string message,int x,int y,
                  TTF_Font *font,int fontSize,SDL_Color textColor,SDL_Surface* &screen)
{
    string mot="";
    string space=" ";
    int i=0,j;
    SDL_Surface *mes=NULL;
 
    j = message.find(space);
    while( j != string::npos )
    {
        mot=message.substr(i,j-i);
        if(mot != "")
        {
            mes=TTF_RenderText_Solid(font,mot.c_str(),textColor);
            applySurface(x,y,mes,screen,NULL);
            x+=mes->w;
            SDL_FreeSurface(mes);
        }
        x+=fontSize;
        i=j+1;
        j = message.find(space,i);
    }
 
    mot=message.substr(i);
    mes=TTF_RenderText_Solid(font,mot.c_str(),textColor);
    applySurface(x,y,mes,screen,NULL);
    SDL_FreeSurface(mes);
}

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
void afficherscore()
{
    SDL_Surface *screen;
    SDL_Event event;
 
    SDL_Init(SDL_INIT_EVERYTHING);
 
screen=SDL_SetVideoMode(SCREEN_WIDTH,SCREEN_HEIGHT,
                            SCREEN_BPP,SDL_SWSURFACE);
//intialisation pour la gestion de l'affichage des fontes
    TTF_Init();
//declaration d'une variable de type fonte
    TTF_Font *fonts;
//declaration d'une variable permettant de gérer la couleur du texte
    SDL_Color textColor= {255,255,255};
    SDL_Color textColor2= {255,255,0};
    SDL_Color textColor3= {0,0,0};
    int fontSize=36;
    int fontSize2=9;
    string police="PiratesBay.ttf";
//ouverture de la fonte
    fonts = TTF_OpenFont(police.c_str(),fontSize);
//afficher les points des joueurs
    ostringstream mssg1;
    ostringstream mssg2;
    ostringstream mssg3;
    mssg2.flush();
    mssg1.str("");
    mssg1.flush();
    mssg2.str("");
    sjoueur j;
 
    mssg1 <<  j.ScoreJ2;
    mssg2 <<  j.ScoreJ1;
 
 
showMessageScreen(mssg1.str(),122,50,fonts,fontSize,textColor3,screen);
showMessageScreen(mssg2.str(),50,50,fonts,fontSize,textColor3,screen);
    TTF_CloseFont(fonts);
    TTF_Quit();
}
Les scores ne s'affichent pas, si vous pouvez m'aider ce sera cool.
Merci à tous ceux qui ont lu mon message.