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
| #include <stdlib.h>
#include <stdio.h>
#include <time.h>//pour les nombres aleatoires
#include <SDL/SDL.h>// pour utiliser la sdl
#include <SDL/SDL_image.h>// pour coller autre que des bmp
#include <SDL/SDL_ttf.h>
#define EcranLarg 800
#define EcranHaut 600
#define coulBlanc 255, 255, 255
#define coulRouge 255, 0, 0
#define coulVert 0, 255, 0
#define coulBleu 0, 0, 255
#define coulMarron 187, 122, 87
#define couleurTexteVert (SDL_Color){0,255,0,0}
#define couleurTexteNoir (SDL_Color){0,0,0,0}
void initSDL(SDL_Surface **ecran)
{
SDL_Init(SDL_INIT_VIDEO)!=0) ...
TTF_Init()...
}
void EcrireBouton(SDL_Surface *ecran, TTF_Font *police, char *mot, int positionY)
{
SDL_Surface *texte=TTF_RenderText_Blended(police, mot, couleurTexteVert);
SDL_Rect positionTexte= {(150-texte->w)/2, positionY+(50-texte->h)/2, 0, 0};//centrage du mot dans la zone de bouton
TTF_Font *policeSouligne=TTF_OpenFont("times.ttf", 30);
TTF_SetFontStyle(policeSouligne, TTF_STYLE_UNDERLINE);
SDL_Surface *texteSouligneAnnuler=TTF_RenderText_Blended(policeSouligne, "A", couleurTexteVert);
SDL_Surface *texteSouligneAide=TTF_RenderText_Blended(policeSouligne, "i", couleurTexteVert);
SDL_Rect positionTexteSouligne= positionTexte;//centrage du mot dans la zone de bouton
SDL_BlitSurface(texte, NULL, ecran, &positionTexte);//collage
if(strcmp(mot,"Annuler")==0)
{
positionTexteSouligne.x=positionTexte.x;
SDL_BlitSurface(texteSouligneAnnuler, NULL, ecran, &positionTexteSouligne);//collage}
}
if(strcmp(mot,"Aide")==0)
{
positionTexteSouligne.x=positionTexte.x+21;
SDL_BlitSurface(texteSouligneAide, NULL, ecran, &positionTexteSouligne);
}
SDL_Flip(ecran);
SDL_FreeSurface(texteSouligneAnnuler);
SDL_FreeSurface(texteSouligneAide);
SDL_FreeSurface(texte);//Liberation du texte écrit
}
int main(int argc, char **argv)
{
SDL_Surface *ecran=NULL;
TTF_Font *police = NULL;//police d'ecriture
initSDL(&ecran);
police = TTF_OpenFont("times.ttf", 30);//chargement de la police d'ecriture et de la taille
EcrireBouton(ecran, police, "Annuler",100);
EcrireBouton(ecran, police, "Aide",250);
SDL_Delay(3000);
TTF_CloseFont(police); // Fermeture de la police, doit être fermée avant TTF_Quit()
TTF_Quit();
SDL_Quit();
return EXIT_SUCCESS;//on quitte le jeu avec succes
} |
Partager