Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

SFML 2.1 Przycisk w menu i sf::Event ( pozycja myszki i kliknięci nie działa razem )

Ostatnio zmodyfikowano 2014-01-14 17:24
Autor Wiadomość
Madrei
Temat założony przez niniejszego użytkownika
SFML 2.1 Przycisk w menu i sf::Event ( pozycja myszki i kliknięci nie działa razem )
» 2014-01-14 16:42:40
Cześć mój problem to zrobienie przycisku za pomocą sf::Event.

C/C++
if( event.type == sf::Event::MouseButtonPressed && event.mouseButton.button == sf::Mouse::Left )
     Okno.close();

if( event.mouseMove.x > 325 && event.mouseMove.x < 475 && event.mouseMove.y > 200 && event.mouseMove.y < 250 )
     Okno.close();


w ten sposób wszystko działa lecz jak zrobię tak:

C/C++
if( event.type == sf::Event::MouseButtonPressed && event.mouseButton.button == sf::Mouse::Left && event.mouseMove.x > 325 && event.mouseMove.x < 475 && event.mouseMove.y > 200 && event.mouseMove.y < 250 )
     Okno.close();

lub tak:

C/C++
if( event.mouseMove.x > 325 && event.mouseMove.x < 475 )
if( event.mouseMove.y > 200 && event.mouseMove.y < 250 )
if( event.type == sf::Event::MouseButtonPressed && event.mouseButton.button == sf::Mouse::Left )
     Okno.close();

i inne kombinacje powyższych to przestaje działać. Jak obejść pobieranie 1 Event-u podczas pętli ??
Tu chodzi o przycisk który ma być kliknięty np. taki "wyjście" lecz działa tylko dla pozycji lub kliknięcia razem nie chce zadziałać.
Następnie chce jeszcze dorzucić enum Menu ale zatrzymałem się na tym dziwnym problemie.

początek pętli:
C/C++
while( Okno.isOpen() )
{
    sf::Event event;
    while( Okno.pollEvent( event ) )
    {
P-102165
ShadowkhaN
» 2014-01-14 16:56:49
Ja robiłem coś takiego i działało
C/C++
if( sf::Mouse::isButtonPressed( sf::Mouse::Left ) && sf::Mouse::getPosition( Window ).x >= 342 && sf::Mouse::getPosition( Window ).x <= 419 && sf::Mouse::getPosition( Window ).y >= 375 && sf::Mouse::getPosition( Window ).y <= 405 )


Nie wiem, czy wiesz, ale sf::Mouse::getPosition(Window).x pobiera pozycję myszki względem okna SFML. Może Ci się to przydać :)
P-102166
RazzorFlame
» 2014-01-14 17:00:16
Nie wiem, czy wiesz, ale sf::Mouse::getPosition( Window ).x pobiera pozycję okna SFML
Nie prawda, pobiera pozycję względną myszki gdzie początek koordynat (0,0) jest właśnie w lewym górnym rogu okna.
P-102168
ShadowkhaN
» 2014-01-14 17:01:59
No źle napisałem trochę :P Chodziło o pozycję myszki xD
P-102169
Madrei
Temat założony przez niniejszego użytkownika
» 2014-01-14 17:24:47
ShadowkhaN dzięki zadziałało :)

if(sf::Mouse::isButtonPressed( sf::Mouse::Left ) ) rozwiązało problem :)
P-102171
« 1 »
  Strona 1 z 1