[SFML2.2] MouseButtonPressed i zwracanie boolean
Ostatnio zmodyfikowano 2015-06-22 11:01
bladykiel Temat założony przez niniejszego użytkownika |
[SFML2.2] MouseButtonPressed i zwracanie boolean » 2015-06-22 09:23:57 Witam, mam dziwny problem :P otóż mam pewną klasę i w niej funkcje z takim ifem.. if( sf::Mouse::isButtonPressed( sf::Mouse::Left ) && sklepGun.czyKupno( sf::Mouse::getPosition( okno ) ) ) { gun.klikniecieKupna = true; }
Jeśli przycisk myszki jest wciśnięty i gdy wskaźnik myszki znajduje się nad "obiektem" to ma zmienną bool (kliknięcieKupna) ustawic na true.. i wszystko ładnie by działało, gdyby nie fakt, że warunek jest spełniony tylko wtedy gdy guzik myszki jest WCIŚNIĘTY (i nie puszczony) oraz gdy wskaźnik znajduje się nad "obiektem". Gdy puszczę przycisk myszki, lub wyjadę z przytrzymanym przyciskiem poza obrys "obiektu" zmienna klikniecieKupna ustawia się na false... I tu jest moje pytanie.. czemu zmienna sama ustawia się na false, pomimo tego, iż nie jest nigdzie ustawiana na tę wartość. Żeby było śmieszniej, jeśli ifa wstawie do głównej pętli programu, wszystko działa ok. |
|
Glazus |
» 2015-06-22 09:41:25 Pokaż więcej kodu. |
|
bladykiel Temat założony przez niniejszego użytkownika |
» 2015-06-22 09:46:44 void ustawGun( kupnoGun gun, guns sklepGun, sf::RenderWindow & okno ) { if( sf::Mouse::isButtonPressed( sf::Mouse::Left ) && sklepGun.czyKupno( sf::Mouse::getPosition( okno ) ) ) { gun.klikniecieKupna = true; } if( gun.klikniecieKupna == true ) { gun.wybierzPozycje( sf::Mouse::getPosition( okno ) ); gun.rysuj( okno ); } }
sklepGun.czyKupno(sf::Mouse::getPosition(okno)) - ta funkcja zwraca true, jeśli wskaźnik myszki jest nad obiektem który chcemy kliknąć. drugi if: jeśli kliknęliśmy na obiecie, ma nowy obiekt ktory przeslalismy do funkcji (gun) ustawic pozycje na pozycji wskaznika. gun.klikniecieKupna = true; - jest polem obiektu |
|
Monika90 |
» 2015-06-22 10:50:36 Ponieważ przekazujesz kupnoGun przez wartość, to funkcja nie operuje na oryginale lecz na kopii i zmiany stanu obiektu nie są widoczne poza funkcją. |
|
bladykiel Temat założony przez niniejszego użytkownika |
» 2015-06-22 10:55:55 To prośba za 100 pkt :) jak zmienić, aby była zmieniana oryginalna wartość tej zmiennej ? |
|
Monika90 |
» 2015-06-22 10:59:15 Przekazuj przez referencję, tak jak to robisz z oknem. |
|
bladykiel Temat założony przez niniejszego użytkownika |
» 2015-06-22 11:01:23 hah... racja... aż mi wstyd normalnie:/
dzięki za pomoc :) |
|
« 1 » |