[Allegro] obsługa kamery.
Ostatnio zmodyfikowano 2009-08-14 06:59
szyx_yankez Temat założony przez niniejszego użytkownika |
[Allegro] obsługa kamery. » 2009-08-13 08:37:39 Otóż piszę platformówkę . Jednak co to za platformówka która ma 800 pixeli w poziomie i 600 w pionie. Mianowice chodzi mi o miejsce.
Czy w allegro jest jakaś funkcja do obsługi kamery. np. że gdy idę ludkiem to ludek jest zawsze na środku ekranu ponieważ kamera zmienia swoje położenie.
|
|
eBbi |
» 2009-08-13 08:46:01 Nie ma takiej funkcji obsługiwującej wyswietlanie danego elementu na środku. Nie wiem czy oto chodzi ale: inicjujesz Stałą np. x = 400 i y =300 (położenie ludka). Po prostu jak masz mapke i naciśniesz np strzałke w lewo to ludek ma zrobić animacje chodzenia a mapka ma się przesunąć o 1 kratke w prawo. |
|
szyx_yankez Temat założony przez niniejszego użytkownika |
» 2009-08-13 09:10:34 ludka to juz mam zrobionego chodzi skaka i animuje się.
Ale chodzi mi oto żeby np żeby wszystkie platformy podłożę itd przesuwały się w taki sposub by ludek nie mógł wyjść poza krawedź ekranu.
|
|
eBbi |
» 2009-08-13 09:14:51 Dalej nierozumiem o co chodzi i nie sądzę aby ktokolwiek wiedział ;p. Opiz problem lepiej, może wrzuć jakąś grafe albo cosik bo nic nie wiadomo z tego co napisałeś. Chodzi ci o to żeby ludek nie mógł wyjść poza mapke?
EDIT: podłoże ma się przesować razem z ludkiem? |
|
szyx_yankez Temat założony przez niniejszego użytkownika |
» 2009-08-13 09:25:57 Robie gre podobną do mario.
Jak kazdy wie rundy w mario są podłużne jakieś 600 pixeli w pionie i 10000 pixeli w poziomie.
Ja robie gre podobno do mario ale mam 600 w pionie i 800 w poziomie. No ale chyba nie ustawie rozdzielczości 10000 X 600. Nawet jak bym ustawił tobym musiał okno myszką przesówać za kazdym razem w lewo.
Moja gra ma być długa w poziomie . A kamera ma zawsze podążać za ludkiem. Zeby ludek nie wychodził poza ekran.
Teraz rozumiecie czy jeszcze coś muszę wytłumaczyć? |
|
Rares |
» 2009-08-13 09:28:07 Wyświetlasz ludka na środku ekranu i nic z nim nie robisz. Wzór na idealne centrum jest prosty:
w poziomie: szer. ekranu - szer. ludka / 2 w pionie: wys. ekranu - wys. ludka / 2
Robisz mapkę i wyświetlasz ją tak jak opisał to Easykoder w swoim tutku na temat map. Wykorzystujesz tam specjalną zmienną, którą możesz kontrolować mapę. Potem podczas działania jakiegoś przycisku zmieniasz wartość tej zmiennej (np. if(key[KEY_LEFT]) mapa.x --;).
Potem sprawdzasz czy mapa nie jest już przy końcu takim wzorem:
(_ILOŚĆ_LICZB_W_TABLICY_ * [SZEROKOŚĆ LUB WYSOKOŚĆ]_KAFLA_ - [SZEROKOŚĆ LUB WYSOKOŚĆ]_WIRTUALNEGO_EKRANU_) / [SZEROKOŚĆ LUB WYSOKOŚĆ]_KAFLA_
if(mapa.x >= LICZBA_KTÓRĄ_OTRZYMAŁEŚ_ZE_WZORU) mapa.x MINUS_MINUS (sory za to, ale wyświetlała mi się emotka);
A z drugiej strony:
if(mapa.x < 0) mapa.x ++; |
|
szyx_yankez Temat założony przez niniejszego użytkownika |
» 2009-08-13 09:31:29 Możecie podać to zmienną lub lepiej linka gdzie to opisał easykoder |
|
Rares |
» 2009-08-13 09:32:41 |
|
« 1 » 2 |