Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SDL] Dzielenie szprajtów.

Ostatnio zmodyfikowano 2011-03-24 15:18
Autor Wiadomość
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:
C/C++
#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;
}
P-29628
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ę.
C/C++
SDL_FreeSurface( surf );
SDL_Quit();


Następnie spróbuj dla dprst ustawić szerokość i wysokość i sprawdź czy na pewno bitmapa została wczytana.

C/C++
if( bitmapa == NULL )
{
    return 0;
}

Jeżeli to nie zadziała to powiedz co rozumiesz przez "nie widzę efektów".
P-29629
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
C/C++
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.
P-29630
szyx_yankez
» 2011-03-24 13:47:54
Używaj '/' a nie '\' do określania ścieżki.
P-29631
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++.
P-29645
« 1 »
  Strona 1 z 1