Detekcja pojedynczego wcisniecia klawisza myszy

0

Zastanawiam się już od dłuższego czasu jak wykorzystując bibliotekę SFML 2.0, napisać funkcję która wykrywa czy na Sprite nie kliknęliśmy JEDEN raz.
w Klasie Mouse nie widzę innej funkcji poza:

isButtonPressed  

Kod detekcji:

         bool Sprawdz_Czy_Kliknieto_Obrazek( sf::Sprite & av_Sprite, sf::RenderWindow & av_Window )
    {
        // pozycja myszy
        int mouseX = sf::Mouse::getPosition().x;
        int mouseY = sf::Mouse::getPosition().y;

        sf::Vector2i windowPosition = av_Window.getPosition(); // zapisujemy pozycje okna
        // jezeli mysz znajduje sie nad obrazkiem.
        if() // znajduje sie nad obrazkiem wycialem warunek bo byl za dlugi
        {
            // i jest wcisniety lewy przycisk
            if( sf::Mouse::isButtonPressed( sf::Mouse::Left ) )
            {
                return true; // to zwracamy prawde
            }
            return false;
        }
        return false;
    }

Jest do dosyc irytujące kiedy przytrzymując klawisz zaznacza mi wszystko w oknie. Jak mogę rozwiązać ten problem?
Z góry dziękuję za odpowiedzi i pozdrawiam ;)

2

uzyj

MouseButtonReleased

czyli nie na wcisniecie a gdy klawisz sie pusci (wiec jak szybko klikniesz to nie powinno byc problemow, duzo gier tak dziala)
Jezeli to Ci nie odpowiada to mzoesz zrobic wlasny MouseButtonDown (bo nie widze w dokumentacji zeby bylo) musisz wychwicic jak tak robisz to teraz i masz dwie opcje

  1. sprawdzac x,y pozycji czy nie wyszedles ze sprite. Jezeli tak to po prostu nie wykonuj nic
  2. po nacisnieciu wykonac i uzyc jakies flagi zeby ten kod sie nie wykonywal. W moomencie MouseButtonReleased mozesz flage zresetowac.

1 użytkowników online, w tym zalogowanych: 0, gości: 1