Kiedy przycisk myszy został zwolniony?

Odpowiedz Nowy wątek
2011-08-10 15:16
0

Po pierwsze chciałbym się przywitać z Wami, z racji tego, że jest to mój pierwszy post na tym forum.

Od pewnego czasu zająłem się poznawaniem XNA. Jak na razie wszystko szło dobrze, ale niestety pojawił się problem, którego nie potrafię rozwiązać. Mianowicie jak wykryć, kiedy przycisk myszy został zwolniony(pierwsze został wciśnięty, trzymany przez pewien czas, a potem puszczony. Potrzebuje właśnie to puszczenie wykryć)?

MouseState mouse = Mouse.GetState();
if (mouse.RightButton == ButtonState.Pressed)
// coś tam

Powyższy kod powoduje wykonywanie się // coś tam wtedy jeżeli przycisk jest wciśnięty. To mnie nie interesuje.
Kiedyś pisałem w SFML. Tam do otrzymania zwolnienia przycisku, używało się Released. Tutaj natomiast, gdy napisałem Released zamiast Pressed, robiło się coś dziwnego. Warunek cały czas był na true, a gdy wcisnąłem przycisk myszy był na false.

Ma ktoś z Was może pomysł, jak mogę rozwiązać mój problem?

Pozdrawiam, Andrzej


Pozostało 580 znaków

2011-08-10 15:30
1

Ponieważ Released to wtedy kiedy jest puszczony i tak ma być. Musisz wykryć czy najpierw był wciśnięty, jak nie to nic nie rób, dopiero jak się wciśnie i potem puści to wykonuje.


<error>There was an error during loading user signature. Please try to reboot the Universe and check again.</error>

Pozostało 580 znaków

2011-08-10 16:00

Dzięki za pomoc.

Jeżeli ktoś jeszcze miałby podobny problem:

// Tworzymy zmienne pomocnicze, w inicjacji nadajemy im false
bool MouseLeftTemp;
bool MouseRightTemp;
// Teraz w funkcji Update
if (mouse.RightButton == ButtonState.Pressed)
    MouseRightTemp = true;
if (mouse.LeftButton == ButtonState.Pressed)
    MouseLeftTemp = true;
 
if (mouse.RightButton == ButtonState.Released && MouseRightTemp)
{
    MouseRightTemp = false;
    // coś tam
}
if (mouse.LeftButton == ButtonState.Released && MouseLeftTemp)
{
    MouseLeftTemp = false;
    // coś tam
}

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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