- Código: Seleccionar todo
- #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 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
 //DECARGA DE SUPERFICIES Y OTROS RECURSOS
 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;
 }
 }
 }
NOTA: El ejemplo utiliza la libreria SDL, y no necesita cargar imagenes externas ya que el sprite se genera por codigo.Solo necesitan compilarlo y ejecutarlo.





