Ahora estuve desarrollando un juego y voy muy adelantado.. pero aperecio un problema en diferentes secciones del juego (en tiempo de ejecucion) muere inexplicadamente, solo en pocas ocasiones termina en el mismo lugar que la anterior vez...
Revise todo el codigo y no encontre error en el... Solo me quedo una duda que no se, si ese; es el problema... Me refiero al manejo de eventos de SDL...
Tengo una clase una funcion dedicada al manejo del cierre de ventanas:
- Código: Seleccionar todo
int Eventos::Cierra( void ){
Uint8 *Keys;
SDL_Event ExtSdl;
Keys = SDL_GetKeyState( NULL );
if( Keys[ SDLK_ESCAPE ] ){
return -1;
}
while( SDL_PollEvent( &ExtSdl ) ){
if( ExtSdl.type == SDL_QUIT ){
return -1;
}
}
return 0;
}
Y para mover el personaje (nave en mi caso) uso:
- Código: Seleccionar todo
void Jugador::Mover( void ){
Uint8 *KeyMov;
KeyMov = SDL_GetKeyState( NULL );
PlayerOne.frame = 1;
if( KeyMov[ SDLK_LEFT ] && PlayerOne.x >= 10 ){
PlayerOne.frame = 2;
PlayerOne.x = PlayerOne.x - PlayerOne.Velocidad;
}
if( KeyMov[ SDLK_UP ] && PlayerOne.y >= 10 ){
PlayerOne.y = PlayerOne.y - PlayerOne.Velocidad;
}
if( KeyMov[ SDLK_RIGHT ] && PlayerOne.x <= 745 ){
PlayerOne.frame = 0;
PlayerOne.x = PlayerOne.x + PlayerOne.Velocidad;
}
if( KeyMov[ SDLK_DOWN ] && PlayerOne.y <= 535 ){
PlayerOne.y = PlayerOne.y + PlayerOne.Velocidad;
}
if( KeyMov[ SDLK_RIGHT ] && KeyMov[ SDLK_LEFT ] ){
PlayerOne.frame = 1;
}
}
Para Acceder a la clase de los eventos lo hago mediante objetos...
Aun no me queda claro el manejo de eventos mediante SDL tal vez ese es el error de mi juego...