[SDL] Dzielenie szprajtów.
Ostatnio zmodyfikowano 2011-03-24 15:18
chemik Temat założony przez niniejszego użytkownika |
[SDL] Dzielenie szprajtów. » 2011-03-24 10:33:03 Hej, mam problem z dzieleniem sprite'ów, przepisałem cały kod z kursy na stronie program normalnie się kompiluje jednak nie widzę efektów. Oczywiście plik liczby jest w tym samym folderze co plik exe. Oto kod: #include <SDL.h> SDL_Surface * ekran = NULL; SDL_Surface * obraz = NULL; SDL_Rect sprst[ 3 ]; SDL_Rect dprst[ 3 ]; int main( int argc, char * args[] ) { SDL_Init( SDL_INIT_EVERYTHING ); ekran = SDL_SetVideoMode( 640, 480, 32, SDL_SWSURFACE ); obraz = SDL_LoadBMP( "liczby.bmp" ); sprst[ 0 ].x = 400; sprst[ 0 ].y = 0; sprst[ 0 ].w = 200; sprst[ 0 ].h = 200; sprst[ 1 ].x = 200; sprst[ 1 ].y = 0; sprst[ 1 ].w = 200; sprst[ 1 ].h = 200; sprst[ 2 ].x = 0; sprst[ 2 ].y = 0; sprst[ 2 ].w = 200; sprst[ 2 ].h = 200; dprst[ 0 ].x = 0; dprst[ 0 ].y = 0; dprst[ 1 ].x = 200; dprst[ 1 ].y = 0; dprst[ 2 ].x = 400; dprst[ 2 ].y = 0; SDL_BlitSurface( obraz, & sprst[ 0 ], ekran, & dprst[ 0 ] ); SDL_BlitSurface( obraz, & sprst[ 1 ], ekran, & dprst[ 1 ] ); SDL_BlitSurface( obraz, & sprst[ 2 ], ekran, & dprst[ 2 ] ); SDL_Flip( ekran ); SDL_Delay( 2005 ); SDL_Quit(); SDL_FreeSurface( obraz ); return 0; }
|
|
kamillo121 |
» 2011-03-24 13:05:56 Nawet przy przepisywaniu przykładów należy nieco używać rozumu... Najpierw zwalniaj pamięć dla powierzchni a potem zwalniaj pamięć zajmowaną przez bibliotekę. SDL_FreeSurface( surf ); SDL_Quit();
Następnie spróbuj dla dprst ustawić szerokość i wysokość i sprawdź czy na pewno bitmapa została wczytana. if( bitmapa == NULL ) { return 0; }
Jeżeli to nie zadziała to powiedz co rozumiesz przez "nie widzę efektów". |
|
chemik Temat założony przez niniejszego użytkownika |
» 2011-03-24 13:25:49 Dzięki, już działa ^^, a nie widzę efektów rozumiem przez czarny ekran. I mam pytanie, jak wczytać plik z określonego folderu? Mam coś takiego bohater = SDL_LoadBMP( "Graphics\Hero\bohater_up.bmp" ); mob = SDL_LoadBMP( "Graphics\Monsters\purplecondom_up.bmp" ); tlo = SDL_LoadBMP( "Graphics\tlo.bmp" ); SDL_BlitSurface( tlo, NULL, ekran, NULL ); SDL_BlitSurface( bohater, NULL, ekran, NULL ); SDL_BlitSurface( mob, NULL, ekran, NULL );
I mam następujące ostrzeżenia 1>.\main.cpp(19) : warning C4129: 'H' : unrecognized character escape sequence 1>.\main.cpp(20) : warning C4129: 'M' : unrecognized character escape sequence 1>.\main.cpp(20) : warning C4129: 'p' : unrecognized character escape sequence A na dodatek nie odczytują mi się sprity. |
|
szyx_yankez |
» 2011-03-24 13:47:54 Używaj '/' a nie '\' do określania ścieżki. |
|
DejaVu |
» 2011-03-24 15:18:40 Jeżeli chcesz używać znaku \ w łańcuchach znaków to musisz go pisać 2krotnie, tj. \\ - wynika to ze standardu C/C++. |
|
« 1 » |