Título: Problema con SDL
Publicado por: GhostLT en 9 Octubre 2010, 20:05 pm
Hola amigos, estoy intentando iniciar con la programacion de videojuegos, me encuentro en la carga del sistema de video pero haciendo pruebas este codigo me muestra un error que no entiendo: Este es el error: In function `SDL_main':| error: number of arguments doesn't match prototype| haciendome referencia a este headerSDL_main.h|57|error: prototype declaration| /** The prototype for the application's main() function */ extern C_LINKAGE int SDL_main(int argc, char *argv[]);
Acá dejo el Código // Creación de un degradado parcial, estableciendo un área de clipping #include <stdio.h> #include <SDL.h> int main() //<------- Aqui es donde me marca el error { SDL_Surface *pantalla, *color_base; SDL_Rect posicion, clipping; SDL_Event evento; int i; // Iniciamos el subsistema de video SDL if( SDL_Init(SDL_INIT_VIDEO) < 0) { fprintf(stderr , "No se pudo iniciar SDL: %s\n",SDL_GetError ()); } // Establecemos el modo de video pantalla = SDL_SetVideoMode(640, 500, 24,SDL_HWSURFACE|SDL_DOUBLEBUF); if(pantalla == NULL) { fprintf(stderr , "No se pudo establecer el modo de video:%s\n",SDL_GetError ()); } // Cargamos la imagen del personaje principal color_base = SDL_LoadBMP("ima.bmp"); if(color_base == NULL) { fprintf(stderr , "No se pudo cargar la imagen: %s\n",SDL_GetError ()); } // Establecemos el área de clipping clipping.x = 0; clipping.y = 0; clipping.h = 500; clipping.w = 100; SDL_SetClipRect(pantalla, &clipping); // Vamos a dibujar 10 tiras for(i = 1; i <= 50; i++) { // Ajustamos las propiedades del canal alpha para las transparecnias SDL_SetAlpha(color_base, SDL_SRCALPHA|SDL_RLEACCEL, i * 5.1); // Establecemos donde vamos a dibujar las tiras posicion.x = 0; posicion.y = 10 * (i - 1); posicion.w = color_base->w; posicion.h = color_base->h; // Copiamos la imagen en la superficie principal SDL_BlitSurface(color_base, NULL, pantalla, &posicion); } // Mostramos la pantalla "oculta" del búffer SDL_Flip(pantalla); // Liberamos los recursos que no necesitamos SDL_FreeSurface(color_base); // Ahora mantenemos el resultado en pantalla // hasta cerrar la ventana for(;;) { while(SDL_PollEvent(&evento)) { if(evento.type == SDL_QUIT) // Si es de salida return 0; } } }
espero y me puedan ayudar para no morir en el intento, Gracias
Título: Re: Problema con SDL
Publicado por: Beakman en 9 Octubre 2010, 21:38 pm
Te falta la SDL_image, para cargar las imágenes y esas cosas, igual ese no puede ser el error porque te saltaría otra cosa. Intenta compilar un programa simple como: #include<iostream> #include<SDL/SDL.h> using namespace std; int main() { return 0; }
Y te fijas que te dice. Pusiste <SDL.h> Casi siempre las librerías las tenes en "<SDL/...etc" Fijate bien como lo tenes. Pero el error no esta en el programa.
Título: Re: Problema con SDL
Publicado por: GhostLT en 9 Octubre 2010, 22:10 pm
Con respecto a <SDL.h>
me funciona de esta manera bien, Ademas ya agregue: <SDL_image.h>
Y modifique main(int argc, char *argv[]); Ya no me marco errores pero al correr no aparece la ventana de SDL (se queda colgado), solo me aparece la ventana del prompt con fondo negro :-\
Título: Re: Problema con SDL
Publicado por: anonimo12121 en 11 Octubre 2010, 00:53 am
Prueba haber si te va esto . #include <iostream> #include <SDL/SDL.h> #include <SDL/SDL_image.h> using namespace std; SDL_Surface *screen; SDL_Event evento; Uint8 *tecla; float tiempo;
int main(int argc,char *argv[]){ SDL_Init(SDL_INIT_VIDEO); screen=SDL_SetVideoMode(640,480,32,SDL_SWSURFACE); SDL_WM_SetCaption("App1",0); while(1){ //iniciamos el reloj tiempo=SDL_GetTicks(); tecla=SDL_GetKeyState(0); SDL_PollEvent(&evento); if(tecla[SDLK_ESCAPE])exit(1); //comprovamos el tiempo tiempo =SDL_GetTicks()-tiempo; if(tiempo < 33.33){ //si aun sobra tiempo hasta llegar a los 33.33 ms SDL_Delay( 33.33-tiempo ); //vete a dormir durante 33.33-x milisegundos 33.33 ms es = 30 fps en 1 s } }
}
Título: Re: Problema con SDL [SOLUCIONADO]
Publicado por: GhostLT en 11 Octubre 2010, 20:03 pm
Gracias, por mi parte pueden cerrar el post
Título: Re: Problema con SDL
Publicado por: anonimo12121 en 12 Octubre 2010, 13:25 pm
Gracias, por mi parte pueden cerrar el post
pero lo mio te a valido?
|