Trust Temat założony przez niniejszego użytkownika |
Błędnie działające menu » 2012-05-12 14:41:39 Witam !!! Mam dziwny problem z menu. Jak niżej widzicie moje menu jest obsługiwane za pomocą myszki. gdy najedziemy na jakiś element podświetli się on ( chyba wiadomo o co chodzi). Start, koniec mam oprogramowane i działa świetnie, natomiast głowię się nad powrotem z poziomu autorzy. Niżej kod odpowiadający za obsługę buttona autorzy ( w komentarzach mam napisane co powinno się dziać i opisany problem który występuje w danym momencie), a na końcu kod odpowiadający za cale menu: else if( mx > 260 && mx < sx5 && my > 400 && my < sy6 ) { play_sample( klik, 255, 255, 1000, 0 ); blit( autorzy_zaznaczone, screen, 0, 0, 260, 500, autorzy_zaznaczone->w, autorzy_zaznaczone->h ); if( mb == true ) { blit( menu, screen, 0, 0, 0, 0, menu->w, menu->h ); blit( autorzy_menu, screen, 0, 0, 0, 0, autorzy_menu->w, autorzy_menu->h ); blit( powrot, screen, 0, 0, 395, 550, powrot->w, powrot->h ); int px1 = 0, py2 = 0; px1 = 395 + 215; py2 = 550 + 59; while( !key[ KEY_ESC ] ) { rest( 100 ); if( mx > 395 && mx < px1 && my > 550 && my < py2 ) { blit( powrot_autorzy, screen, 0, 0, 395, 550, powrot_autorzy->w, powrot_autorzy->h ); play_sample( klik, 255, 255, 1000, 0 ); if( mb == true ) { break; } } } } }
while( !key[ KEY_ESC ] ) { if( mx != mouse_x || my != mouse_y || mb != mouse_b ) { mx = mouse_x; my = mouse_y; mb = mouse_b; } int sx1 = 0, sx3 = 0, sx5 = 0, sx7 = 0, sy2 = 0, sy4 = 0, sy6 = 0, sy8 = 0; sx1 = 188 + 213; sy2 = 400 + 41; sx3 = 220 + 213; sy4 = 450 + 41; sx5 = 260 + 213; sy6 = 500 + 41; sx7 = 208 + 213; sy8 = 550 + 41; rest( 100 ); blit( start, screen, - 20, 0, 188, 400, start->w, start->h ); blit( opcje, screen, 0, 0, 220, 450, opcje->w, opcje->h ); blit( autorzy, screen, 0, 0, 260, 500, autorzy->w, autorzy->h ); blit( wyjscie, screen, 0, 0, 208, 550, wyjscie->w, wyjscie->h ); if( mx > 188 && mx < sx1 && my > 400 && my < sy2 ) { play_sample( klik, 255, 255, 1000, 0 ); blit( start_zaznaczone, screen, 0, 0, 208, 400, start_zaznaczone->w, start_zaznaczone->h ); if( mb == true ) break; } else if( mx > 220 && mx < sx3 && my > 400 && my < sy4 ) { play_sample( klik, 255, 255, 1000, 0 ); blit( opcje_zaznaczone, screen, 0, 0, 220, 450, opcje_zaznaczone->w, opcje_zaznaczone->h ); if( mb == true ) break; } else if( mx > 260 && mx < sx5 && my > 400 && my < sy6 ) { play_sample( klik, 255, 255, 1000, 0 ); blit( autorzy_zaznaczone, screen, 0, 0, 260, 500, autorzy_zaznaczone->w, autorzy_zaznaczone->h ); if( mb == true ) { blit( menu, screen, 0, 0, 0, 0, menu->w, menu->h ); blit( autorzy_menu, screen, 0, 0, 0, 0, autorzy_menu->w, autorzy_menu->h ); blit( powrot, screen, 0, 0, 395, 550, powrot->w, powrot->h ); int px1 = 0, py2 = 0; px1 = 395 + 215; py2 = 550 + 59; while( !key[ KEY_ESC ] ) { rest( 100 ); if( mx > 395 && mx < px1 && my > 550 && my < py2 ) { blit( powrot_autorzy, screen, 0, 0, 395, 550, powrot_autorzy->w, powrot_autorzy->h ); play_sample( klik, 255, 255, 1000, 0 ); if( mb == true ) { break; } } } } } else if( mx > 208 && mx < sx7 && my > 550 && my < sy8 ) { play_sample( klik, 255, 255, 1000, 0 ); blit( wyjscie_zaznaczone, screen, 0, 0, 208, 550, wyjscie_zaznaczone->w, wyjscie_zaznaczone->h ); if( mb == true ) { koniec_gry(); allegro_exit; return 0; } } } |