#include <stdio.h>
#include <SDL.h>
void TECLADO();
SDL_Surface *pantalla;
SDL_Event evento;
SDL_Rect pj_r;
SDL_Rect fondo_r;
bool salir = false;
char TITULO[]="CODIGO BASICO SDL";
int VEL = 1;
int vel_x = 0;
int vel_y = 0;
int bbb = 0;
int main(int argc, char *argv[])
{
SDL_Init( SDL_INIT_VIDEO );
SDL_WM_SetCaption( TITULO, NULL );
pantalla = SDL_SetVideoMode(640,480,24,SDL_HWSURFACE);
pj_r.x = 0;
pj_r.y = 0;
pj_r.w = 50;
pj_r.h = 50;
fondo_r.x = 0;
fondo_r.y = 0;
fondo_r.w = 640;
fondo_r.h = 480;
while( salir == false )
{
while( SDL_PollEvent( &evento ) )
{
TECLADO();
if( evento.type == SDL_QUIT ){ salir = true; }
if(evento.key.keysym.sym == SDLK_ESCAPE ){ salir = true;}
}//FIN WHILE #2
pj_r.x += vel_x;
pj_r.y += vel_y;
if(pj_r.x<0)pj_r.x=0;
if(pj_r.x+50>640)pj_r.x-= vel_x;
if(pj_r.y<0)pj_r.y=0;
if(pj_r.y+50>480)pj_r.y-= vel_y;
SDL_FillRect(pantalla,&fondo_r,SDL_MapRGB(pantalla->format,0,0,0));
SDL_FillRect(pantalla,&pj_r,SDL_MapRGB(pantalla->format,255,255,0));
SDL_Flip(pantalla);
}//FIN WHILE #1
SDL_Quit ();
return 0;
}
void TECLADO(){
if( evento.type == SDL_KEYDOWN )
{
switch( evento.key.keysym.sym )
{
case SDLK_UP: vel_y -= VEL; break;
case SDLK_DOWN: vel_y += VEL; break;
case SDLK_LEFT: vel_x -= VEL; break;
case SDLK_RIGHT: vel_x += VEL; break;
}
}
else if( evento.type == SDL_KEYUP )
{
switch( evento.key.keysym.sym )
{
case SDLK_UP: vel_y += VEL; break;
case SDLK_DOWN: vel_y -= VEL; break;
case SDLK_LEFT: vel_x += VEL; break;
case SDLK_RIGHT: vel_x -= VEL; break;
}
}
}