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

[SFML] If nie działa

Object Storage Arubacloud
0 głosów
166 wizyt
pytanie zadane 4 listopada 2016 w C i C++ przez Linker Bywalec (2,690 p.)

Witam. Mam problem z sfml. Mam 2 ify odnoszące się do tej samej tekstury.

Pierwszy się spełnia a drugi, jakby go nie było.

Oto warunki:

 if(budynki_sprite[0].getGlobalBounds().contains(mysz))
            {
            
            }
if(budynki_sprite[0].getGlobalBounds().contains(mysz) && event.type == Event::MouseButtonReleased && event.key.code == Mouse::Left)
            {

}

 

1 odpowiedź

0 głosów
odpowiedź 4 listopada 2016 przez criss Mędrzec (172,590 p.)

http://www.sfml-dev.org/documentation/2.0/classsf_1_1Event.php

key to event dotyczący klawiatury. Jeśli chcesz sprawdzać eventy dotyczące myszki to musisz... sprawdzać event dotyczący myszki.

W taki sposób możesz sprawdzić to, co chcesz teraz:

if(budynki_sprite[0].getGlobalBounds().contains(mysz) && event.type == Event::MouseButtonReleased && event.mouseButton.button == Mouse::Left)

 

komentarz 4 listopada 2016 przez Linker Bywalec (2,690 p.)
Dzięki, taki efekt ma kopiowanie i później trudno to zauważyć ;)

Lecz, nadal nie działa.
komentarz 4 listopada 2016 przez criss Mędrzec (172,590 p.)

Hm, faktycznie. U mnie też nic. Coś mi sie kojarzy teraz, że z tym były problemy w SFML, ale pewien nie jestem. Może coś źle robimy... Anyway - została ci sf::Mouse, ale niestety tylko z metodą isButtonPressed :/

Edit: nie, jednak działa. Mały bałagan w kodzie miałem, nieważne :P Upewnij się, że dobrze pobierasz pozycje myszki, bo raz się na tym złapałem. Tzn. żeby dostać pozycje myszki względem okna, musimy przekazać do getPosition nasze okno.

komentarz 4 listopada 2016 przez criss Mędrzec (172,590 p.)
Edytowałem to co napisałem wyżej - przeczytaj!
komentarz 4 listopada 2016 przez Linker Bywalec (2,690 p.)
Teraz chyba działa :)

Dziękuję.

Pozdrawiam :)
komentarz 4 listopada 2016 przez Linker Bywalec (2,690 p.)
Jeżeli oto chodzi :

Vector2f mysz(Mouse::getPosition(window));

To było od początku ale wcześniejsza wersja nie działała.
komentarz 4 listopada 2016 przez criss Mędrzec (172,590 p.)
Wcześniejsza wersja? A co się zmieniło?
komentarz 4 listopada 2016 przez Linker Bywalec (2,690 p.)
To co napisałeś na początku nie działa a to z isButtonPressed działa.
komentarz 4 listopada 2016 przez criss Mędrzec (172,590 p.)

A, to dziwne. Widocznie
 

budynki_sprite[0].getGlobalBounds().contains(mysz)

daje false. U mnie działa jak należy.

Kompilowałem z SFML 2.3.2, więc nawet nie najnowsze. Jeśli masz >= 2.3.2, to niemożliwe, żeby nie działało z winy SFML.

Podobne pytania

0 głosów
2 odpowiedzi 1,773 wizyt
pytanie zadane 4 października 2016 w C i C++ przez Tymek Nowicjusz (160 p.)
+4 głosów
5 odpowiedzi 501 wizyt
0 głosów
2 odpowiedzi 381 wizyt

92,620 zapytań

141,474 odpowiedzi

319,813 komentarzy

62,003 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!

...