Witam w SDL siedzę od 4h i mam problem przy pewnym programiku.
Mianowicie program ma za zadanie przemieszać bitmape po ekranie przy pomocy strzałek a przycisk "C" z założenia wyśrodkowywać bitame na obszarze programu.
Ale zamiast przenosić starą to wkleją ją w tło i tworzy nową bitmape na podanych współrzędnych.
#include <SDL.h>
bool wyjscie = false;
int OsY;
int OsX;
SDL_Event zdarzenie;
SDL_Rect LudekPozycja;
#undef main
int main(int argc,char *args[])
{
SDL_Surface *ekran = SDL_SetVideoMode(640,480,32,SDL_SWSURFACE);
SDL_Surface *ludek = SDL_LoadBMP("ludek.bmp");
while(!wyjscie)
{
while(SDL_PollEvent (&zdarzenie) )
{
if(zdarzenie.type == SDL_QUIT)
wyjscie = true;
if(zdarzenie.type == SDL_KEYDOWN)
{
switch(zdarzenie.key.keysym.sym)
{
case SDLK_RIGHT:
OsX+=20;
break;
case SDLK_LEFT:
OsX-=20;
break;
case SDLK_UP:
OsY-=20;
break;
case SDLK_DOWN:
OsY+=20;
break;
/////////////////////////////////////////////////////////////////////////
// case SDLK_c:
//SDL_Surface *czarno = SDL_LoadBMP("e0.bmp");
// tu próba zasłonięcia
// byłej bitmapy //SDL_BlitSurface(czarno,0,ekran,0);
//SDL_Flip(ekran);
// OsX = 320;
// OsY = 240;
// break;
////////////////////////////////////////////////////////////////////////////////////
}
}
}
LudekPozycja.x = OsX;
LudekPozycja.y = OsY;
SDL_BlitSurface(ludek,0,ekran,&LudekPozycja);
SDL_Flip(ekran);
}
SDL_FreeSurface(ludek);
SDL_Quit();
return 0;
}
Próbowałem zasłaniać cały obszar roboczy czarnym tłem jednak nie pomaga.
Problem jest pewnie banalny jednak prosiłbym o pomoc;p