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

Allegro, strefy myszki

Ostatnio zmodyfikowano 2011-12-20 23:17
Autor Wiadomość
marianekA
Temat założony przez niniejszego użytkownika
Allegro, strefy myszki
» 2011-12-20 14:04:54
W poprzednim języku którym się bawiłem była taka funkcja jak MouseZone,
zwracała ona numer strefy (wcześniej zdeklarowanej) na której aktualnie znajduje się wskaźnik myszki.
Jako początkujący zapytuję Was jak można to zrobić w C++ i Allegro.
P-45937
malan
» 2011-12-20 14:22:09
» Kurs Allegro 4.x, C++Myszka lekcja.

Możesz również napisz własną klasę do tego:
C/C++
struct zone
{
    int x;
    int y;
    int w;
    int h;
};

class MouseZone
{
public:
    void append( zone & newZone );
    {
        zones.push_back( newZone );
    }
   
    std::size_t get()
    {
        // Sprawdzamy pozycję myszki i porównujemy z pozycjami
        // zapisanymi w 'zones'.
    }
   
private:
    std::vector < zone > zones;
};
P-45942
marianekA
Temat założony przez niniejszego użytkownika
» 2011-12-20 19:04:17
Serdeczne dzięki za przykład.
Przyznam że jeszcze tak daleko nie zaszedłem
i klasy są jeszcze dla mnie obce
ale mając dobry przykład szybciej je sobie przyswoję
P-45954
malan
» 2011-12-20 23:17:29
Przykład nie jest jakiś tam najlepszy - on miał tylko zobrazować jedno z możliwych rozwiązań Twojego problemu :) Gdybyś podał więc informacji dotyczących tego co chcesz osiągnąć to łatwiej by nam było Ci pomóc :)
Jeżeli np. chcesz tylko sprawdzić, czy kliknięto w daną bitmapę to wystarczy to zrobić tak:
C/C++
if( mouse_x >= pozycja_bitmapy_x && x <= pozycja_bitmapy_x + szerokosc_bitmapy &&
mouse_y >= pozycja_bitmapy_y && y <= pozycja_bitmapy_y + wysokosc_bitmapy &&
mouse_b == 1 )
{
    // kliknięto w bitmapę...
}
P-45983
« 1 »
  Strona 1 z 1