Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[problem] [c++] Allegro + pozycja myszy


Rekomendowane odpowiedzi

Opublikowano

Siemka,

Siedzę już 2 godziny nad dokumentacją Allegro, ale nie mogę znaleźć sposobu na sprawdzenie czy kursor myszy znajduje się na obszarze "screen" (w gui tworzonym przez allegro) czy poza nim.

Mogę pobrać pozycje myszy względem tego okna (gui_mouse_x/y()), ale nie mogę sprawdzić czy mysz jest poza nim... Dlatego, że jeśli jest poza nim to zwraca ostatnią wartość z czasu, kiedy mysz była w oknie...

Nie działa mi funkcja mouse_on_screen()

error: 'mouse_on_screen' was not declared in this scope|

 

 

Ogólnie dla mnie jest to aburdem, że mogę poznać współrzędne myszki (kursora) względem okna tworzonego przez allegro, ale nie mogę sprawdzić czy kursor jest poza nim, bo wtedy wartość się nie zmienia...

 

Jak ktoś zna jakieś w miare proste rozwiązanie to proszę o jego podanie.

Weteran
Opublikowano

Witaj,

Z tego co zrozumiałem, to po prostu możesz skorzystaj z funkcji w winapi - getcursorpos czy coś takiego.

Potem obliczasz czy wartości zwrócone przez funkcje pokrywają się z współrzędnymi okna.

Opublikowano

problem z tym, że nie wiem jak wyciągnąć współrzędne okna.

(nie działa mi funkcja win_get_window() z allegro (ten sam powód co w poprzedniej), a bez hwnd nie dotrę do wpółrzędnych okna. (chyba, że da się przez allegro to ogarnąć). Pomijając już fakt, że chcę unikać winapi.

Weteran
Opublikowano

Jeśli chodzi o mouse_on_screen, to funkcja działa mi(allegro 4.4) bez zarzutów.

A pozycje okna pobiera się tak:

	 RECT rct;
HWND hwnd = FindWindow(NULL, "okno");
GetWindowRect(hwnd,&rct);

Tu masz strukturę RECT http://msdn.microsof...7(v=vs.85).aspx

 

Nie chcę zniechęcać, ale allegro ma dość ograniczoną liczbę funkcji, kiedyś bawiłem się z tą biblioteką dość długi czas i wiele rzeczy musiałem zapożyczać z innych bibliotek, a o niektórych musiałem zapomnieć.

Opublikowano

wiem, że allegro nie jest najlepsze, ale na razie dobrze mi się z niego korzysta, nie potrzebuję jakijś wypasionej biblioteki.

Z tego co wyczytałem to mouse_on_screen() wycofano w allegro 5 (nie wiem dlaczego).

 

spróbuje tego co napisałeś za raz dam edita..

dobra to działa, chiałem unikać win api, ale na razie niech już zostanie.

dzieki.

 

myślę, że temat można zamknąć.

  • 2 tygodnie później...
Opublikowano

@up.

1. to wiedziałem. Lecz te zmienne nie pokazywały wsp. myszy jeśli ona była poza oknem

2. Prosiłem już o zamknięcie tego tematu, ponieważ problem został rozwiązany

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...