Dépendances (dans l'archive) :
font.bmp
#include <stdarg.h> #include <sdl/sdl.h> #pragma comment(lib,"sdl.lib") #pragma comment(lib,"sdlmain.lib") int WaitKey() { SDL_Event e; do { SDL_WaitEvent(&e); } while(e.type!=SDL_KEYDOWN); return 0; } void PrintSDL(SDL_Surface* font,SDL_Surface* dest,int x,int y,char* text,...) { // l'image doit faire 16 * 14 caractères. char buf[500]; int i,len; SDL_Rect Rsrc,Rdst; va_list args; va_start(args,text); vsprintf(buf,text,args); va_end(args); Rsrc.w = font->w/16; Rsrc.h = font->h/14; len = (int)strlen(buf); for(i=0;i<len;i++) { Rsrc.x = Rsrc.w*((unsigned char)(buf[i])%16); Rsrc.y = Rsrc.h*((unsigned char)(buf[i])/16-2); // on saute les 31 premiers codes ASCII Rdst.x = x; Rdst.y = y; SDL_BlitSurface(font,&Rsrc,dest,&Rdst); x+=Rsrc.w; } } int main(int argc,char** argv) { SDL_Surface *screen,*font; SDL_Init(SDL_INIT_VIDEO); screen=SDL_SetVideoMode(800,600,32,SDL_SWSURFACE|SDL_DOUBLEBUF); font=SDL_LoadBMP("font.bmp"); if (!font) return -1; PrintSDL(font,screen,50,50,"Plouf !"); PrintSDL(font,screen,20,90,"Vous avez %d ans",30); SDL_Flip(screen); WaitKey(); SDL_FreeSurface(font); SDL_Quit(); return 0; }
No explanations yet.