[SFML] Podwójne wykorzystanie kliknięcia myszy
Ostatnio zmodyfikowano 2017-03-27 14:51
addam23 Temat założony przez niniejszego użytkownika |
[SFML] Podwójne wykorzystanie kliknięcia myszy » 2017-03-27 14:18:48 Witam, pisze sobie mały programik okienkowy w SFML-u , w którym mam kilka przycisków. Po uruchomieniu programu mam do wyboru 4 przyciski jeden zamyka program 3 pozostałem powodują ,że wszystkie 4 znikają i na ich miejsce pokazują się 3 kolejne jeden cofa do 4 przycisków a 2 pozostałem przechodzą dalej. I teraz jest mój problem jeśli kliknę w przycisk ,który przechodzi do drugiej "sceny" ,ale w takim miejscu ,że kursor myszy pojawi się na przycisku do cofania do nic się nie dzieje, bo program odczytuje ,że kliknąłem w też w ten przycisk. Tu jest mój kod: if( event.type == sf::Event::MouseButtonReleased && event.key.code == sf::Mouse::Left && state == KTORY_ALGORYTM ) { for( int i = 0; i < 3; i++ ) if( buttons_type[ i ].getGlobalBounds().contains( mouse.x, mouse.y ) ) { type = i; state = ROSNACO_MALEJACO; } if( buttons_type[ 3 ].getGlobalBounds().contains( mouse.x, mouse.y ) ) window.close(); }
if( event.type == sf::Event::MouseButtonReleased && event.key.code == sf::Mouse::Left && state == ROSNACO_MALEJACO ) { for( int i = 0; i < 2; i++ ) if( buttons_sort[ i ].getGlobalBounds().contains( mouse.x, mouse.y ) ) { sort_ = i; switch( type ) { case 0: state = QUICKSORT; break; case 1: state = BUBBLESORT; break; case 2: state = SELECTIONSORT; break; } } if( buttons_sort[ 2 ].getGlobalBounds().contains( mouse.x, mouse.y ) ) state = KTORY_ALGORYTM; } |
|
Saran |
» 2017-03-27 14:47:42 Niech user przechodzi do następnej sceny dopiero kiedy kliknie i puści przycisk myszki na buttonie. |
|
1aam2am1 |
» 2017-03-27 14:51:29 Daj po prostu else po if w pętli eventów. Gdyż tak naprawdę przenosisz się do następnej sceny i następnie ją cofasz. Więc gdy dasz else nie wiejdzie ci już do następnego if i nie spowoduje zmiany. |
|
« 1 » |