Destract Temat założony przez niniejszego użytkownika |
klikanie w strefy myszą oraz akcje, Allegro c++ » 2010-05-13 19:27:04 Allegro uczę się od wczoraj, dziś natknąłem się na pewien problem, nie wiem jak zrobić, by po kliknięciu myszą w górną połowę ekranu wyświetlił się obrazek1, a w dolną obrazek2. oto mój kod=] #include <allegro.h>
BITMAP * kursor;
void laduj_kursor() { kursor = load_bitmap( "kursor.bmp", NULL ); if( !kursor ) { set_gfx_mode( GFX_TEXT, 0, 0, 0, 0 ); allegro_message( "Nie moge zaladowac grafiki ( kursor )" ); allegro_exit(); } };
int mx = 0, my = 0, mb = 0; 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, 800, 600, 0, 0 ); BITMAP * bufor = NULL; bufor = create_bitmap( 800, 600 ); BITMAP * obrazek1 = NULL; BITMAP * obrazek2 = NULL; BITMAP * nac = NULL; nac = create_bitmap( 800, 600 ); obrazek1 = load_bmp( "obrazek1.bmp", default_palette ); obrazek2 = load_bmp( "obrazek2.bmp", default_palette ); laduj_kursor(); install_mouse(); show_mouse( screen ); set_mouse_sprite( kursor ); unscare_mouse(); while( !key[ KEY_ESC ] ) { clear_to_color( bufor, makecol( 100, 100, 100 ) ); myszka(); textprintf_ex( bufor, font, 20, 20, makecol( 200, 200, 200 ), - 1, "Myszka x = %d, y = %d, klawisz = %d !", mx, my, mb ); clear_keybuf(); blit( bufor, screen, 0, 0, 0, 0, 800, 600 ); if( mb = 1 && my < 300 ) { masked_blit( obrazek1, nac, 0, 0, 100, 200, ludek->w, ludek->h ); blit( nac, screen, 0, 0, 0, 0, 800, 600 ); } if( mb = 1 && my > 300 ) { masked_blit( obrazek2, nac, 0, 0, 100, 200, ludek->w, ludek->h ); blit( nac, screen, 0, 0, 0, 0, 800, 600 ); } destroy_bitmap( nac ); destroy_bitmap( obrazek1 ); destroy_bitmap( obrazek2 ); destroy_bitmap( bufor ); destroy_bitmap( kursor ); allegro_exit(); return 0; } END_OF_MAIN(); póki co jestem totalne newbie, więc bardzo prosze o pomoc i wyrozumiałość=] z góry dziękuje, Destract #pixelmaster: zapoznaj się z http://forum.ddt.pl/?Tid=1860 |