Voldo Temat założony przez niniejszego użytkownika |
Problem z "szarym tłem" » 2011-11-26 14:19:40 Kierując się zasadą jeden problem = jeden temat stworzyłem nowy. Otóż kompilacja mojego programu przebiega poprawnie jednak, gdy go uruchamiam moim oczom ukazuję się.... szare tło a nie bitmapa, którą program ma wczytywać. Proszę o pomoc :) Oto kodzik: #include <allegro.h>
int mb, mx, my;
void myszka() { if( mx != mouse_x || my != mouse_y || mb != mouse_b ) { mx = mouse_x; my = mouse_y; mb = mouse_b; } } int main() { allegro_init(); install_keyboard(); set_color_depth( 16 ); set_gfx_mode( GFX_AUTODETECT_WINDOWED, 740, 550, 0, 0 ); clear_to_color( screen, makecol( 128, 128, 128 ) ); install_mouse(); enable_hardware_cursor(); select_mouse_cursor( MOUSE_CURSOR_QUESTION ); show_mouse( screen ); unscare_mouse(); clear_to_color( screen, makecol( 128, 128, 128 ) ); install_sound( DIGI_AUTODETECT, MIDI_AUTODETECT, "" ); set_volume( 255, 255 ); BITMAP * bufor = NULL; SAMPLE * dzwiek = NULL; BITMAP * gracpp = NULL; BITMAP * uruchom = NULL; BITMAP * ustawienia = NULL; BITMAP * tworcy = NULL; BITMAP * wyjsc = NULL; gracpp = load_bmp( "gracpp.bmp", default_palette ); if( !gracpp ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "nie mogę załadować obrazka Ludek !" ); allegro_exit(); return 0; } uruchom = load_bmp( "uruchom.bmp", default_palette ); if( !uruchom ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "nie mogę załadować obrazka uruchom !" ); allegro_exit(); return 0; } ustawienia = load_bmp( "ustawienia.bmp", default_palette ); if( !ustawienia ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "nie mogę załadować obrazka ustawienia !" ); allegro_exit(); return 0; } tworcy = load_bmp( "tworcy.bmp", default_palette ); if( !tworcy ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "nie mogę załadować obrazka tworcy !" ); allegro_exit(); return 0; } wyjsc = load_bmp( "wyjsc.bmp", default_palette ); if( !wyjsc ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "nie mogę załadować obrazka wyjsc !" ); allegro_exit(); return 0; } bufor = create_bitmap( 740, 550 ); dzwiek = load_sample( "Campain.wav" ); if( !dzwiek ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "nie mogę załadować dzwieku !" ); allegro_exit(); return 0; } play_sample( dzwiek, 255, 127, 1000, 1 ); while( !key[ KEY_ESC ] ) { blit( tworcy, bufor, 0, 0, 250, 260, tworcy->w, tworcy->h ); if( key[ KEY_F1 ] ) { adjust_sample( dzwiek, 255, 127, 500, 1 ); } if( key[ KEY_F2 ] ) { adjust_sample( dzwiek, 255, 127, 2000, 1 ); } if( key[ KEY_F3 ] ) { adjust_sample( dzwiek, 255, 0, 1000, 1 ); } if( key[ KEY_F4 ] ) { adjust_sample( dzwiek, 255, 255, 1000, 1 ); } } while( !key[ KEY_ESC ] ) { myszka(); blit( gracpp, bufor, 0, 0, 0, 0, gracpp->w, gracpp->h ); blit( uruchom, bufor, 0, 0, 250, 200, uruchom->w, uruchom->h ); blit( ustawienia, bufor, 0, 0, 250, 260, ustawienia->w, ustawienia->h ); blit( tworcy, bufor, 0, 0, 250, 320, tworcy->w, tworcy->h ); blit( wyjsc, bufor, 0, 0, 250, 378, wyjsc->w, wyjsc->h ); blit( bufor, screen, 0, 0, 0, 0, 740, 550 ); } stop_sample( dzwiek ); clear_bitmap( bufor ); allegro_exit(); return 0; } END_OF_MAIN(); Jak zwykle im szybciej uzyskam odpowiedź tym lepiej bo będę mógł przejść dalej. Pozdrawiam :) edit@ Sądzę, że problem leży gdzieś w create bitmap lub clear to color |
malan |
» 2011-11-26 14:44:50 Ekran jest szary, bo na taki kolor go "przemalowałeś": clear_to_color( screen, makecol( 128, 128, 128 ) ); To, że w pierwszej pętli zapomniałeś o skopiowaniu bufora na ekran to już druga sprawa: while( !key[ KEY_ESC ] ) { blit( tworcy, bufor, 0, 0, 250, 260, tworcy->w, tworcy->h ); if( key[ KEY_F1 ] ) { adjust_sample( dzwiek, 255, 127, 500, 1 ); } if( key[ KEY_F2 ] ) { adjust_sample( dzwiek, 255, 127, 2000, 1 ); } if( key[ KEY_F3 ] ) { adjust_sample( dzwiek, 255, 0, 1000, 1 ); } if( key[ KEY_F4 ] ) { adjust_sample( dzwiek, 255, 255, 1000, 1 ); } } |