Bonjour, voila, je m'initie a la programmation avec SDL, et j'attaque l'affichage du texte, sauf que la je bloque complètement...
voici mon code :
Fenetre.cpp :
a savoir que this->f est de type SDL_Surface* (c'est ma fenêtre)
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 ... void Fenetre::ecrireTexte(int x,int y,char* texte,Couleur coul){ TTF_Font *font; SDL_Surface *message; font = TTF_OpenFont("arial.ttf", 20); SDL_Color textColor = { coul.rouge(), coul.vert(), coul.bleu() }; message = TTF_RenderText_Solid( font,"test", textColor ); SDL_Rect offset; offset.x = x; offset.y = y; SDL_BlitSurface(message, NULL, this->f, &offset ); SDL_Flip(this->f); } ...
et que Couleur est une de mes classe qui dispose de 3 fonction rouge() vert() et bleu() qui retourne respectivement la valeur rouge vert et bleu de cette couleur (ces fonction retourne un int)
main.cpp
en sachant que mon initVideo fait référence a cet include :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 int main(int argc, char** argv) { initVideo(); Fenetre f("Bonjour toto"); Couleur c(255,0,0); f.afficher(); f.ecrireTexte(100,100,"Texte juste pour essayer",Couleur(125,150,125)); attendreTouche(); return EXIT_SUCCESS; }
Graphisme.h
Graphisme.cpp
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 #ifndef _GRAPHIQUE #define _GRAPHIQUE #include <stdlib.h> #include <stdio.h> #include <iostream> #include <string> #include "SDL.h" #include "SDL_ttf.h" #include "Couleur.h" void initVideo(); void attendreTouche(void); #endif
voila donc je sait que sa plante au niveau de l'appel de la fonction TTF_RenderText_Solid, mais j'ai cherché partout, sur google ya rien et sa me gave...
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 #include "Graphique.h" void initVideo(void) { if (SDL_Init(SDL_INIT_VIDEO) < 0) { fprintf(stderr, "Erreur à l'initialisation de la SDL : %s\n", SDL_GetError()); exit(EXIT_FAILURE); } if (TTF_Init()==-1){ fprintf(stderr, "Erreur à l'initialisation de la SDL_TTF", SDL_GetError()); exit(EXIT_FAILURE); } atexit(SDL_Quit); } void attendreTouche(void) { SDL_Event event; do SDL_WaitEvent(&event); while (event.type != SDL_QUIT && event.type != SDL_KEYDOWN); }
les symptômes sont les suivants :
la fenêtre de mon programme s'ouvre et se referme immédiatement,
la console me retourne [cpp]Process terminated with status 3 (0 minutes, 5 seconds)[/cpp]
donc voila je ne sait vraiment pas quoi faire, et la j'ai vrément besoin d'aide...
merci d'avance
@+
fab
Partager