[C++, Allegro] Kliknięcie myszy w kwadrat
Ostatnio zmodyfikowano 2015-01-28 19:01
rav_jarosz2 Temat założony przez niniejszego użytkownika |
[C++, Allegro] Kliknięcie myszy w kwadrat » 2015-01-28 10:16:19 if( mouse_x > 10 && mouse_x < 50 && mouse_y > 50 && mouse_y < 90 && mouse_b == 1 ) { player1.wybor_bloku--; mouse_b = 0; } if( mouse_x > 90 && mouse_x < 130 && mouse_y > 50 && mouse_y < 90 && mouse_b == 1 ) { player1.wybor_bloku++; mouse_b = 0; } if( player1.wybor_bloku <= 1 ) player1.wybor_bloku = 1;
if( player1.wybor_bloku >= 8 ) player1.wybor_bloku = 8; Hej. Mam taką sytuację. Klikam w kwadrat, którego rozmiary podałem w warunku. Wszystko jest pięknie, jeśli nie ruszam myszką. Gdy moja zmienna "player1.wybor_bloku" jest równa 1 i kliknę w ten kwadrat, zwiększa się o 1. Ale gdy kliknę i delikatnie myszką poruszę, od razu jest równa 8. Ten sam problem mam w innym przypadku. Mógłby ktoś pomóc go rozwiązać? //Najwyraźniej stan zmiennej "mouse_b" jest aktualizowany gdy zmienia się x lub y. Tylko jak to obejść? //Zamieniłem lewy przycisk myszy na klawisz Z a prawy na X, ale nic to nie dało |
|
SeaMonster131 |
» 2015-01-28 17:51:08 Np. możesz stworzyć pomocniczą zmienną bool: bool klikniety = false;
if( klikniecie w kwadrat && !klikniety ) { player1.wybor_bloku--; klikniety = true; }
if( mouse_b != 1 && klikniety ) klikniety = false;
|
|
rav_jarosz2 Temat założony przez niniejszego użytkownika |
» 2015-01-28 19:01:28 Wielkie dzięki. Już wszystko działa jak należy. Dzięki temu rozwiązałem nawet problem w innym miejscu. Mam tylko 1 zastrzeżenie- w tym ifie z wyzerowania kliknięcia mouse_b!=1 zmieniłem na mouse_b==0, zeby nie dało się wyzerowywać klikając prawym. Dzięki. |
|
« 1 » |