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

[SFML] If nie działa

VPS Starter Arubacloud
0 głosów
165 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,721 wizyt
pytanie zadane 4 października 2016 w C i C++ przez Tymek Nowicjusz (160 p.)
+4 głosów
5 odpowiedzi 482 wizyt
0 głosów
2 odpowiedzi 364 wizyt

92,455 zapytań

141,263 odpowiedzi

319,100 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...