XaNeq Temat założony przez niniejszego użytkownika |
[Allegro] obsługa klawiatury » 2009-07-05 10:55:15 Witam, dalej próbuję pisać moją grę i mam problem z poruszaniem paletki. gdy próbuję kompilować pogram to włącza się i wyłącza. Może mi ktoś powiedzieć co jest źle z tym kodem? #include <allegro.h> int main() { allegro_init(); install_keyboard(); set_color_depth( 16 ); set_gfx_mode( GFX_AUTODETECT, 1024, 768, 0, 0 ); clear_to_color( screen, makecol( 0, 255, 0 ) ); BITMAP * NapisS = NULL; BITMAP * Menu = NULL; BITMAP * Instrukcja = NULL; BITMAP * Autor = NULL; BITMAP * Tlo = NULL; BITMAP * Paletka1 = NULL; BITMAP * Paletka2 = NULL; BITMAP * bufor = NULL; bufor = create_bitmap( 1024, 768 ); if( !bufor ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "Nie mogę utworzyć bufora !" ); allegro_exit(); return 0; } NapisS = load_bmp( "grafika/NapisS.bmp", default_palette ); if( !NapisS ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "Nie moge zaladowac Napisu!" ); allegro_exit(); return 0; } Menu = load_bmp( "grafika/Menu.bmp", default_palette ); if( !Menu ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "Nie moge zaladowac Menu!" ); allegro_exit(); return 0; } blit( NapisS, screen, 0, 0, 80, 20, NapisS->w, NapisS->h ); blit( Menu, screen, 0, 0, 80, 300, Menu->w, Menu->h ); destroy_bitmap( NapisS ); destroy_bitmap( Menu ); int klawisz = 0; int paletka1_x = 1, paletka1_y = 350; int p2x = 1000, p2y = 350; while( !key[ KEY_ESC ] ) { if( key[ KEY_1 ] ) { clear_to_color( screen, makecol( 128, 128, 128 ) ); Tlo = load_bmp( "grafika/tlo.bmp", default_palette ); Paletka1 = load_bmp( "grafika/paletka1.bmp", default_palette ); Paletka2 = load_bmp( "grafika/paletka2.bmp", default_palette ); blit( bufor, screen, 0, 0, 0, 0, 1024, 768 ); blit( Tlo, screen, 0, 0, 0, 1, Tlo->w, Tlo->h ); } if( key[ KEY_UP ] ) paletka1_y--; if( key[ KEY_DOWN ] ) paletka1_y++; if( key[ KEY_W ] ) p2y--; if( key[ KEY_S ] ) p2y++; if( paletka1_y < 1 ) paletka1_y = 1; if( paletka1_y > 608 ) paletka1_y = 608; if( p2y < 1 ) p2y = 1; if( p2y > 608 ) p2y = 608; clear_to_color( bufor, makecol( 0, 255, 0 ) ); if( key[ KEY_P ] ) { clear_to_color( screen, makecol( 0, 255, 0 ) ); NapisS = load_bmp( "grafika/NapisS.bmp", default_palette ); Menu = load_bmp( "grafika/Menu.bmp", default_palette ); blit( NapisS, screen, 0, 0, 80, 20, NapisS->w, NapisS->h ); blit( Menu, screen, 0, 0, 80, 300, Menu->w, Menu->h ); } if( key[ KEY_2 ] ) { clear_to_color( screen, makecol( 0, 255, 0 ) ); Instrukcja = load_bmp( "grafika/Instrukcja.bmp", default_palette ); blit( Instrukcja, screen, 0, 0, 20, 20, Instrukcja->w, Instrukcja->h ); if( !Instrukcja ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "Nie moge zaladowac Instrukcja.bmp!" ); allegro_exit(); return 0; } } if( key[ KEY_3 ] ) { clear_to_color( screen, makecol( 0, 255, 0 ) ); Autor = load_bmp( "grafika/autor.bmp", default_palette ); if( !Autor ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "Nie moge zaladowac pliku autor.bmp!" ); allegro_exit(); return 0; } blit( Autor, screen, 0, 0, 20, 20, Autor->w, Autor->h ); } masked_blit( Paletka1, bufor, 0, 0, paletka1_x, paletka1_y, Paletka1->w, Paletka1->h ); masked_blit( Paletka2, bufor, 0, 0, p2x, p2y, Paletka2->w, Paletka2->h ); } destroy_bitmap( Paletka1 ); destroy_bitmap( Paletka2 ); destroy_bitmap( Menu ); destroy_bitmap( NapisS ); destroy_bitmap( Tlo ); destroy_bitmap( Autor ); destroy_bitmap( Instrukcja ); destroy_bitmap( bufor ); allegro_exit(); return 0; } END_OF_MAIN();
|