Allegro i kalibracja wskaźnika

Odpowiedz Nowy wątek
2011-08-07 14:48
Maniek
0

Próbuję napisać swoją pierwszą grę w Allegro (wybrałem rzutki). Wszystko fajnie idzie ale żeby nie było za łatwo wstawiłem własny kursor (400x400px) w postaci krzyżyka i tu mój problem - po kliknięciu wykrywa miejsce kliknięcia jako lewy górny róg kursora, jak przestawić, aby "ostrze" standardowej strzałki było w środku krzyżyka?

Pozostało 580 znaków

2011-08-07 14:59
0
  1. Tam gdzie odczytujesz pozycję kursora po prostu przesuń ją do środka dodając po 200 do współrzędnych
  2. Pobieraj pozycję kursora i po prostu rysuj w tym miejscu ten celownik 200 pikseli w górę i na lewo, przy czym oryginalny kursor ukryj (lub pustą bitmapę zrób)

Pozostało 580 znaków

2011-08-07 15:42
Maniek
0

Wiem, ale nie wiedziałem jak to zrobić, na szczęście dzięki tobie wpadłem na inny pomysł, dzięki.
A wiesz może jak zrobić, aby kursor bujał się w górę i w dół symulując oddychanie?

Pozostało 580 znaków

2011-08-07 15:59
Gość :P
0

Zrób to w głównej pętli, jeśli masz taką możliwość. Albo ustaw timer. Jeśli chcesz żeby np bujało sie o 50 px w dół w ciągu jednej sekundy to musisz co 20 ms dodawac do zmiennej y 1 px :) Jak sie skonczy to bujasz od stanu obecnego (50) do stanu 50 w gore (-50) czyli o 100 px. Czyli reasumując dla stanu w którym y = 0 dajesz pętle while np do tych 50 a potem lecisz w przeciwną stronę. mozna to dzielić albo na cykle albo coś. Możesz dodać jeszcze randomizację jakąś która będzie dodawała do zmiennej X lub odejmowała od niej.

A ogólnie to ciekawy pomysł ^^

Pozostało 580 znaków

2011-08-07 20:51
Maniek
0

Dzięki, teraz muszę obmyślić jak wykrywać w jakie pole punktowe się trafiło, bo z prostokątami to łatwo ale z kołami - wyższa matematyka :D

Pozostało 580 znaków

2011-08-07 21:39
msm
0

muszę obmyślić jak wykrywać w jakie pole punktowe się trafiło, bo z prostokątami to łatwo ale z kołami - wyższa matematyka

Nie przesadzaj, wyliczaj po prostu odległość punktu od środka koła (hint - a2 + b2 = c^2) :>

Pozostało 580 znaków

2011-08-07 23:29
Maniek
0

Faktycznie, a ja głupi chciałem coś kombinować jak Pitagorasem można łatwo trzasnąć :D
A może na to coś poradzicie - podmieniłem kursor na celownik, wszystko fajnie, prawym przyciskiem myszy zmniejsza się celownik dla poprawienia celności (później to jakoś ograniczę), chciałem ustawić wyrzucenie rzutki na lewy przycisk myszy, ale nie działa! Tymczasowo ustawiłem na spację i wszystko działa - co zrobiłem źle?
Fragment kodu:

        if(mb==0) //mb - mouse button
        {
             blit( kursor1, mouse_bufor,0,0,mx-100,my-100,800,600); //mx, my - x, y położenia wskaźnika
             if(key[KEY_SPACE] && licznik_strzalow<3)
             {
                      blit( kursor1, mouse_bufor,0,0,mx-100,my-100,800,600);
                      blit(trafienie, bufor_screen,0,0,mx-1,my-1,3,3);
                      punkty();
                      rest(150);
                      licznik_strzalow++;
             }
        }
        else if(mb==2)
        {
             blit( kursor2, mouse_bufor,0,0,mx-50,my-50,800,600);
             if(key[KEY_SPACE] && licznik_strzalow<3)
             {
                      blit( kursor1, mouse_bufor,0,0,mx-100,my-100,800,600);
                      blit(trafienie, bufor_screen,0,0,mx-1,my-1,3,3);
                      punkty();
                      rest(150);
                      licznik_strzalow++;
             }
        } 

Pozostało 580 znaków

2011-08-08 01:08
grrr
0

a kto pisze ten program ty czy my? Czytając twoje wypowiedzi domyślam się, że jesteś raczej na początku drogi przygody z programowaniem, a więc ten dział nie jest dla ciebie. Druga sprawa to fakt, że pytając się o wszystko nic się nie nauczysz. Przysiądź i pokombinuj i testuj, jak nie działa lub nie pasuje ci rozwiązanie próbuj dalej.

Pozostało 580 znaków

2011-08-08 12:43
Maniek
0

Może i masz rację, że niczego się nie nauczę, ale próbowałem już z tym kilka godzin i dopiero dzisiaj udało mi się to naprawić. Tak to są moje początki programowania (w Allegro, bo c++ już znam, może nie perfekcyjnie, ale znam)

No i co, myślałeś, że wszystko będzie się ogarniać od razu? Każdy z nas spędził czasem kilka godzin na czymś, co do niczego nie doprowadziło albo okazało się na koniec jakimś trywialnym problemem. - Rev 2011-08-08 13:19

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