Allegro i kodzik
Ostatnio zmodyfikowano 2011-01-28 01:26
LukiPRO Temat założony przez niniejszego użytkownika |
Allegro i kodzik » 2011-01-28 01:18:50 Cześć, mam taki problem. Napisałem sobie kod który sprawdza czy kliknąłem na guzik. Ale jest jakiś problem którego za nic nie mogę rozwiązać. Otóż gdy kliknę na guzik to wyskakuje okienko z tekstem Kliknąłeś na guzik ale gdy klikam ok to ten guzik pokazuje się jeszcze raz. I tak 2 - 3 razy. Wiecie może co zrobiłem źle? #include <allegro.h>
int mx, my, mb;
BITMAP * bufor = NULL; BITMAP * guzik = NULL;
bool wyjscie = false; bool NaGuziku = false;
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(); install_mouse(); set_color_depth( 32 ); set_window_title( "Myszka" ); set_gfx_mode( GFX_AUTODETECT_WINDOWED, 800, 600, 0, 0 ); bufor = create_bitmap( 800, 600 ); guzik = load_bitmap( "guzik.bmp", NULL ); show_mouse( screen ); unscare_mouse(); while( !wyjscie ) { if( key[ KEY_ESC ] ) { wyjscie = true; } clear_to_color( bufor, makecol( 10, 255, 0 ) ); draw_sprite( bufor, guzik, SCREEN_W / 2 - guzik->w / 2, SCREEN_H / 2 - guzik->h / 2 ); myszka(); textprintf( bufor, font, 10, 10, makecol( 255, 255, 255 ), "Mysz x = %i y = %i button = %i", mx, my, mb ); if( mouse_x >= 300 && mouse_x <= 500 && mouse_y >= 250 && mouse_y <= 350 ) { if( mouse_b == 1 ) { NaGuziku = true; } } else NaGuziku = false; if( NaGuziku ) { allegro_message( "Kliknales na guzik" ); } blit( bufor, screen, 0, 0, 0, 0, 800, 600 ); } destroy_bitmap( bufor ); destroy_bitmap( guzik ); allegro_exit(); return 0; } END_OF_MAIN(); |
|
DejaVu |
» 2011-01-28 01:23:07 bool bCzyKlikniety = false;
if( !bCzyKlikniety && klawisz_myszki == 1 ) { bCzyKlikniety = true; } if( klawisz_myszki == 0 ) bCzyKlikniety = false;
|
|
LukiPRO Temat założony przez niniejszego użytkownika |
» 2011-01-28 01:26:38 Ok wielkie dzięki. Zamykam |
|
« 1 » |