1
即時通訊使用的代碼塊,我已經安裝圖書館,並沒有錯誤那裏... 當我建立項目,編譯器說,它沒有錯誤,當我運行它它只是會彈出一個窗口和內部它只是黑色的,而其假設出現的話「世界報HOLA ......」我得到了在項目文件夾ariblk.ttf ...不能找到爲什麼SDL_ttf它不呈現
#include <stdio.h>
#include <stdlib.h>
#include <SDL.h>
#include "SDL_ttf.h"
int main(int argc, char *argv[]) {
SDL_Color bgcolor,fgcolor;
SDL_Rect rectangulo;
SDL_Surface *screen,*ttext;
TTF_Font *fuente;
const char texto[14]="Hola Mundo...";
char msg[14];
SDL_Event event;
int done = 0;
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
printf("No se pudo iniciar SDL: %s\n",SDL_GetError());
return 1;
}
screen = SDL_SetVideoMode(640,480,24,SDL_HWSURFACE|SDL_DOUBLEBUF);
if (screen == NULL) {
printf("No se puede inicializar el modo gráfico: %s\n",SDL_GetError());
return 1;
}
atexit(SDL_Quit);
if (TTF_Init() < 0) {
printf("No se pudo iniciar SDL_ttf: %s\n",SDL_GetError());
return 1;
}
atexit(TTF_Quit);
fuente = TTF_OpenFont("ariblk.ttf",20);
if(fuente == NULL)
{
printf("No se pudo cargar fuente %s",TTF_GetError());
}
fgcolor.r=200;
fgcolor.g=200;
fgcolor.b=10;
bgcolor.r=255;
bgcolor.g=0;
bgcolor.b=0;
sprintf(msg,"%s",texto);
ttext = TTF_RenderText_Shaded(fuente,msg,fgcolor,bgcolor);
rectangulo.y=100;
rectangulo.x=100;
rectangulo.w=ttext->w;
rectangulo.h=ttext->h;
SDL_SetColorKey(ttext,SDL_SRCCOLORKEY|SDL_RLEACCEL, SDL_MapRGB(ttext->format,255,0,0));
SDL_BlitSurface(ttext,NULL,screen,&rectangulo);
TTF_CloseFont(fuente);
SDL_FreeSurface(ttext);
while(done == 0)
{
while (SDL_PollEvent(&event))
{
if (event.type == SDL_KEYDOWN)
done = 1;
}
}
return 0;
}
男士非常感謝,即時通訊新的SDL,這是一本書的例子,但如果有一些錯誤,但感謝你我修復它,謝謝=) – user1129209 2012-01-04 06:33:48