konrad Temat założony przez niniejszego użytkownika |
[Allegro, C++] Błędna kolejność bitmap podczas wyświetlania » 2010-06-03 15:14:16 najważniejsze części kodu deklaracja zmiennych: int state = 0, menu = 0; obrazki: start1 = load_bmp( "images/start1.bmp", default_palette ); if( !start1 ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "nie mogę załadować obrazka start1 !" ); allegro_exit(); return 0; }
start2 = load_bmp( "images/start2.bmp", default_palette ); if( !start2 ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "nie mogę załadować obrazka start2 !" ); allegro_exit(); return 0; }
wyjscie1 = load_bmp( "images/wyjscie1.bmp", default_palette ); if( !wyjscie1 ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "nie mogę załadować obrazka wyjscie1 !" ); allegro_exit(); return 0; }
wyjscie2 = load_bmp( "images/wyjscie2.bmp", default_palette ); if( !wyjscie2 ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "nie mogę załadować obrazka wyjscie2 !" ); allegro_exit(); return 0; } wyświetlanie: if( state == 0 ) { if( menu == 0 ) { clear_to_color( bufor, makecol( 150, 150, 150 ) ); masked_blit( start1, bufor, 0, 0, 100, 100, 257, 63 ); masked_blit( wyjscie2, bufor, 0, 0, 100, 200, 257, 63 ); blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); if( key[ KEY_DOWN ] ) { menu++; } } else if( menu == 1 ) { clear_to_color( bufor, makecol( 150, 150, 150 ) ); masked_blit( start1, bufor, 0, 0, 100, 100, 257, 63 ); masked_blit( wyjscie2, bufor, 0, 0, 100, 200, 257, 63 ); blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); if( key[ KEY_UP ] ) { menu--; } } } powinny wyświetlać się obrazki start1 i wyjscie2 przynajmniej tak mi się wydaje :D a wyświetlają się obrazki start1 i wyjscie1, co źle zrobiłem ? //edit oj przepraszam po prostu odwrotnie nazwałem obrazki :D ale nie działa mi zmiana obrazków czyli if( key[ KEY_DOWN ] ) { menu++; } i if( key[ KEY_UP ] ) { menu--; } ^^możliwe że zmienna się zmienia ale obrazki nie pewnie coś skopałem |
|
ison |
» 2010-06-03 15:43:37 w tym miejscu: if( state == 0 ) { if( menu == 0 ) { clear_to_color( bufor, makecol( 150, 150, 150 ) ); masked_blit( start1, bufor, 0, 0, 100, 100, 257, 63 ); masked_blit( wyjscie2, bufor, 0, 0, 100, 200, 257, 63 ); blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); if( key[ KEY_DOWN ] ) { menu++; } } else if( menu == 1 ) { clear_to_color( bufor, makecol( 150, 150, 150 ) ); masked_blit( start1, bufor, 0, 0, 100, 100, 257, 63 ); masked_blit( wyjscie2, bufor, 0, 0, 100, 200, 257, 63 ); blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); if( key[ KEY_UP ] ) { menu--; } } }
przeciez ty w obu przypadkach wyswietlasz zawsze te same bitmapy... rozumiem że można pisać o swoim problemie na forum ale bez przesady, lepiej najpierw pomyśleć, bo tego typu błędy widzi się na pierwszy rzut oka... |
|
konrad Temat założony przez niniejszego użytkownika |
» 2010-06-03 15:53:35 no niestety ja tak mam i w c++ i w php zrobię głupi mały błąd i szukam go 2 godziny while( !key[ KEY_ESC ] ) { while( speed > 0 ) { if( state == 0 ) { if( menu == 0 ) { clear_to_color( bufor, makecol( 150, 150, 150 ) ); masked_blit( start1, bufor, 0, 0, 100, 100, 257, 63 ); masked_blit( wyjscie2, bufor, 0, 0, 100, 200, 257, 63 ); blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); if( key[ KEY_DOWN ] ) menu = 1; } else if( menu == 1 ) { clear_to_color( bufor, makecol( 150, 150, 150 ) ); masked_blit( start2, bufor, 0, 0, 100, 100, 257, 63 ); masked_blit( wyjscie1, bufor, 0, 0, 100, 200, 257, 63 ); blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); if( key[ KEY_UP ] ) menu = 0; } } else if( state == 1 ) { if( key[ KEY_LEFT ] ) ludek_x--; if( key[ KEY_RIGHT ] ) ludek_x++; if( key[ KEY_UP ] ) ludek_y--; if( key[ KEY_DOWN ] ) ludek_y++; speed--; } } clear_to_color( bufor, makecol( 150, 150, 150 ) ); masked_blit( ludek, bufor, 0, 0, ludek_x, ludek_y, ludek->w, ludek->h ); blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); if( menu == 0 ) { clear_to_color( bufor, makecol( 150, 150, 150 ) ); masked_blit( start1, bufor, 0, 0, 100, 100, 257, 63 ); masked_blit( wyjscie2, bufor, 0, 0, 100, 200, 257, 63 ); blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); } else if( menu == 1 ) { clear_to_color( bufor, makecol( 150, 150, 150 ) ); masked_blit( start2, bufor, 0, 0, 100, 100, 257, 63 ); masked_blit( wyjscie1, bufor, 0, 0, 100, 200, 257, 63 ); blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); } }
remove_int( increment_speed );
destroy_bitmap( ludek ); destroy_bitmap( bufor ); destroy_bitmap( start1 ); destroy_bitmap( start2 ); destroy_bitmap( wyjscie1 ); destroy_bitmap( wyjscie2 ); allegro_exit(); return( 0 ); } END_OF_MAIN(); naciskając klawisz esc program się nie zamyka pewnie znowu jakiś głupi błąd ale nie mogę go znaleść |
|
lenrokskate |
» 2010-06-03 17:40:38 od czego jest log kompilacji w IDE? Tam ładnie pisze jaki jest błąd i w której linijce... |
|
konrad Temat założony przez niniejszego użytkownika |
» 2010-06-03 17:43:46 nie ma żadnego błędu i dzieje się to tylko w menu gry ale już wszystko dobrze w menu gry zrobiłem wyjście i git |
|
« 1 » |