• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

SFML - po najechaniu myszką na tekst kolor się nie zmienia

Object Storage Arubacloud
0 głosów
508 wizyt
pytanie zadane 27 grudnia 2016 w C i C++ przez szym3ns Użytkownik (860 p.)

Witam, tak jak w tytule, napisałem funkcję, dzięki której po najechaniu myszką na pozycje mojego napisu (zmienna pozycja) powinien zmienić kolor na niebieski. Niestety nie działa, gdziekolwiek bym nie najechał to kolor się nie zmienia.. Po dodaniu "else" zmienia kolor natychmiastowo, tak jakby zmienna pozycja nie zawierała współrzędnych napisu, które przecież przypisuje jej w konstruktorze.. Jakieś porady?

void MenuText::upDate()
{
    if ((sf::Mouse::getPosition(*win).x == pozycja.x && sf::Mouse::getPosition(*win).y == pozycja.y))
        tekst.setColor(sf::Color::Blue);
}

 

2 odpowiedzi

+1 głos
odpowiedź 27 grudnia 2016 przez sofnir Gaduła (4,690 p.)
wybrane 27 grudnia 2016 przez szym3ns
 
Najlepsza

Spróbuj tego:

Vector2f mousePosition = Vector2f(Mouse::getPosition(window));

if (item.getGlobalBounds().contains(mousePosition))
   item.setColor(Color::Blue);
else
   item.setColor(Color::White);
			


 

 

komentarz 27 grudnia 2016 przez szym3ns Użytkownik (860 p.)

Pięknie działa :) Wielkie dzięki. Swoją drogą, nie wiedziałem, że klasa Text także posiada funkcję getGlobalBounds() laugh

komentarz 27 grudnia 2016 przez szym3ns Użytkownik (860 p.)
Mam jeszcze pytanie co do tego warunku.. konkretnie chodzi mi o 'else'. Czyż nie jest tak, że w momencie gdy poruszam myszką po oknie, gdziekolwiek nie ruszę kursorem (nie licząc natrafienia na obiekt MenuText) warunek else zawsze się wykonuje, non stop zmieniając kolor tekstu na kolor biały? Chyba że źle to zrozumiałem
komentarz 27 grudnia 2016 przez criss Mędrzec (172,590 p.)

gdziekolwiek nie ruszę kursorem (nie licząc natrafienia na obiekt MenuText) warunek else zawsze się wykonuje, non stop zmieniając kolor tekstu na kolor biały?

Tak 

+1 głos
odpowiedź 27 grudnia 2016 przez criss Mędrzec (172,590 p.)
Może lepiej sprawdzaj czy myszka znajduje się w napisie, a nie czy znajduje się DOKŁADNIE w tym samym punkcie co origin napisu... Raczej ciężko aż tak dokładnie poruszyć myszką.

Podobne pytania

–2 głosów
4 odpowiedzi 1,395 wizyt
pytanie zadane 11 września 2016 w HTML i CSS przez Rafik Obywatel (1,870 p.)
0 głosów
2 odpowiedzi 2,758 wizyt
pytanie zadane 13 kwietnia 2016 w HTML i CSS przez Krzysiek_34 Mądrala (6,080 p.)
–2 głosów
2 odpowiedzi 461 wizyt
pytanie zadane 26 grudnia 2019 w HTML i CSS przez sevenshow Początkujący (360 p.)

92,579 zapytań

141,429 odpowiedzi

319,657 komentarzy

61,962 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...