Witam, chciałbym zaznaczyć, że poniżej przedstawiony kod jest moim pierwszym kodem gry jaki pisze...
Mam prośbę o sprawdzenie dlaczego tekst nie jest wypisywany na ekranie. Z góry dziękuje:)
Używam: SDL-devel-1.2.13-mingw32, SDL_image-devel-1.2.7-VC9, SDL_ttf-devel-2.0.9-VC8
#include "SDL/SDL.h"
#include "SDL/SDL_image.h"
#include "SDL/SDL_ttf.h"
#include <string>
SDL_Surface *ekran = NULL;
SDL_Surface *titleset = NULL;
SDL_Surface *tekst = NULL;
TTF_Font *font = NULL;
SDL_Color textColor = { 255, 255, 255 };
SDL_Event zdarzenie;
SDL_Rect titlesetDestination;
Uint8 *keystate = SDL_GetKeyState(NULL);
int x,y,MapXposition=0,MapYposition=0,Map[40][30];
bool wyjscie = false;
void apply_surface( int w, int z, SDL_Surface* source, SDL_Surface* destination, SDL_Rect* clip = NULL )
{
font = TTF_OpenFont( "moja.ttf", 28 );
SDL_Rect offset;
offset.x = w;
offset.y = z;
SDL_BlitSurface( source, clip, destination, &offset );
}
int main(int argc, char *args[])
{
ekran = SDL_SetVideoMode(640,480,32,SDL_SWSURFACE);
SDL_WM_SetCaption( "Moja gra", NULL );
titleset = IMG_Load("Data/TitleSet.png");
while(!wyjscie)
{
while(SDL_PollEvent(&zdarzenie))
{
if(zdarzenie.type == SDL_QUIT)
{
wyjscie = true;
}
}
//Przewijanie ekranu -niedokonczone
if((keystate[SDLK_RIGHT])&&(MapXposition<40))
{
MapXposition ++;
}
if((keystate[SDLK_LEFT])&&(MapXposition>0))
{
MapXposition --;
}
if((keystate[SDLK_UP])&&(MapYposition>0))
{
MapYposition --;
}
if((keystate[SDLK_DOWN])&&(MapYposition<30))
{
MapYposition ++;
}
y=0;
while (y<480)
{
while(x<640)
{
titlesetDestination.x = x;
x=x+32;
SDL_BlitSurface(titleset,NULL,ekran,&titlesetDestination);
}
x=0;
titlesetDestination.y = y;
y=y+32;
SDL_Flip(ekran);
}
tekst = TTF_RenderText_Solid( font, "Hello Word", textColor );
apply_surface( 0, 150, tekst, ekran );
SDL_Flip(ekran);
}
SDL_FreeSurface(titleset);
SDL_FreeSurface(tekst);
SDL_Quit();
return 0;
}