- Código: Seleccionar todo
 //LIBRERIAS
 #include <stdio.h>
 #include <SDL.h>
 void TECLADO();
 //SUPERFICIES
 SDL_Surface *PANTALLA;
 SDL_Surface *FONDO;
 SDL_Surface *PJ;
 //EVENTOS
 SDL_Event EVENTO;
 //RECTANGULOS
 SDL_Rect FONDO_R;
 SDL_Rect PJ_R;
 //VARIABLES GLOBALES
 bool SALIR = false;
 char TITULO[]="PRUEBA DE OPTIMIZACION #1";
 int VEL = 3;
 int VEL_X = 0;
 int VEL_Y = 0;
 const int PJ_ALTO = 50;
 const int PJ_ANCHO = 50;
 int main(int argc, char *argv[])
 {
 SDL_Init( SDL_INIT_VIDEO );
 SDL_WM_SetCaption( TITULO, NULL );
 PANTALLA = SDL_SetVideoMode(640,480,24,SDL_SWSURFACE| SDL_DOUBLEBUF);
 FONDO = SDL_LoadBMP("fondo.bmp");
 PJ = SDL_LoadBMP("pj.bmp");
 //UBICACION DEL PJ
 PJ_R.x = 0;
 PJ_R.y = 0;
 PJ_R.w = PJ_ALTO;
 PJ_R.h = PJ_ANCHO;
 //UBICACION DEL FONDO
 FONDO_R.x = PJ_R.x;
 FONDO_R.y = PJ_R.y;
 FONDO_R.w = FONDO->w;
 FONDO_R.h = FONDO->h;
 
 while( SALIR == false )
 {
 while( SDL_PollEvent( &EVENTO ) )
 {
 //EVENTOS DEL TECLADO
 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_BlitSurface(FONDO,NULL,PANTALLA,&FONDO_R);
 SDL_BlitSurface(PJ,NULL,PANTALLA,&PJ_R);
 SDL_Flip(PANTALLA);
 
 }//FIN WHILE #1
 SDL_FreeSurface(FONDO);
 SDL_FreeSurface(PJ);
 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;
 }
 }
 }


 
   
   
  
  
  
