polska Posted June 26, 2012 at 01:59 PM Report Share #465614 Posted June 26, 2012 at 01:59 PM (edited) Estava a rever os tuts de SDL do foo e após fazer o programa de abrir imagens de diferentes formatos(PNG) , ele não funcionou.. Eu revi o código e ele esta todo direitinho, tanto as funções como o main, o que se passa é quando chega a parte de chamar a função load_image , ele chama mas não conssegue abrir as imagens, e a Surface fica com NULL e o programa termina... COD: #include "SDL.h" #include "SDL_image.h" #include <string> const int SCREEN_WIDTH = 640; const int SCREEN_HIGHT = 480; const int SCREEN_BPP = 32; SDL_Surface *screen=NULL; SDL_Surface *bruno=NULL; SDL_Surface *background=NULL; SDL_Surface *Load_Image( std::string filename ) { SDL_Surface *loadedImage=NULL; SDL_Surface *optimizedImage=NULL; loadedImage=IMG_Load( filename.c_str() ); if(loadedImage != NULL) { optimizedImage=SDL_DisplayFormat( loadedImage ); SDL_FreeSurface( loadedImage ); } return optimizedImage; } void apply_surface( int x, int y, SDL_Surface *source, SDL_Surface *destination ) { SDL_Rect offset; offset.x=x; offset.y=y; SDL_BlitSurface( source, NULL, screen, &offset ); } bool Init() { if( SDL_Init( SDL_INIT_EVERYTHING ) == -1 ) return false; screen=SDL_SetVideoMode( SCREEN_WIDTH, SCREEN_HIGHT, SCREEN_BPP, SDL_SWSURFACE ); if( screen == NULL ) return false; SDL_WM_SetCaption( "Optimized images Test", NULL ); return true; } void clean() { SDL_FreeSurface( background ); SDL_FreeSurface( bruno ); SDL_Quit(); } int main( int argc, char* args[] ) { if( Init() == false ) return 1; background=Load_Image( "background.png" ); bruno=Load_Image( "bruno.png" ); if( background == NULL || bruno == NULL ) return 1; apply_surface( 0, 0, background, screen ); apply_surface( 320, 0, background, screen ); apply_surface( 0, 240, background, screen ); apply_surface( 320, 240, background, screen ); apply_surface( (SCREEN_WIDTH-280)/2, (SCREEN_HIGHT-200)/2, bruno, screen ); if( SDL_Flip( screen ) == -1 ) return 1; SDL_Delay( 10000 ); clean(); return 0; } Alguém me consegue ajudar? Ps: As imagens estão no directório do programa, como deviam estar. Edited June 26, 2012 at 02:49 PM by polska Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás. Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted June 26, 2012 at 02:05 PM Report Share #465618 Posted June 26, 2012 at 02:05 PM o SDL recorre a duas bibliotecas para abrir e ler os ficheiros PNG : zlib e libpng estas duas bibliotecas devem estar acessíveis à aplicação no momento de execução IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
polska Posted June 26, 2012 at 02:49 PM Author Report Share #465653 Posted June 26, 2012 at 02:49 PM o SDL recorre a duas bibliotecas para abrir e ler os ficheiros PNG : zlib e libpng estas duas bibliotecas devem estar acessíveis à aplicação no momento de execução Ah pois foi, eu retirei os DLL da pasta, só deixei aqueles que incluimos no linker... Mas se não funciona.. xD Já esta a funcionar o prog, obrigado ;D Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now