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

[SFML] If nie działa

Cloud VPS
0 głosów
328 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,570 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,570 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,570 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,570 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,570 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 2,181 wizyt
pytanie zadane 4 października 2016 w C i C++ przez Tymek Nowicjusz (160 p.)
+4 głosów
5 odpowiedzi 738 wizyt
0 głosów
2 odpowiedzi 633 wizyt

93,484 zapytań

142,417 odpowiedzi

322,763 komentarzy

62,895 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

Kursy INF.02 i INF.03
...