2010-02-04 10 views
6

Próbuję rozwijać grę 2D na Androida za pomocą opengl.Android OpenGL gra

Wiem, jak drukować obrazy na ekranie i animować je. Ale w mojej grze mam mapę i chcę powiększać i pomniejszać i przewijać mapę. Ale nie mogę wymyślić najlepszego sposobu na zrobienie tego.

Czy ktoś może mi pomóc?

+0

Czy możesz być bardziej konkretny? Czy potrzebujesz porady dotyczącej otwartego GL? A może szukasz danych wejściowych dotyczących architektury gry 2D? Obecnie mam problem z ustaleniem aktualnego pytania. Mam więc nadzieję, że możesz wyjaśnić, że dla mnie i ja być może pomożemy :). –

+1

Powinieneś rzucić okiem na niektóre podstawowe pojęcia Tilingu. wskazuje na moje poprzednie pytanie: http://stackoverflow.com/questions/2125354/best-approach-for-oldschool-2d-zelda-like-game – Dullahx

Odpowiedz

0

Najprostszym podejściem byłoby po prostu wywołanie glTranslatef (-scrollX, -scrollY, 0), a następnie glScalef (zoom, zoom, zoom) przed renderowaniem mapy.

1

Nie mam żadnych przykładów api, ale zaprojektowałem gry w college'u, więc podam moje dwa kawałki.

Używana metoda zależy od stylu, rozmiaru, funkcjonalności i formatu mapy.

Na przykład, jeśli szukasz bardzo statycznej, niezmiennej mapy, użyj prostego obrazu. Możesz użyć ramki API do widoku obrazu, umożliwiając powiększanie i pomniejszanie, tak jak w galerii, i przewijać powiększone obrazy, lub w tym przypadku powiększać lokalizacje na mapie.

Alternatywnie, jeśli twoja mapa jest oparta na systemie kafli, dobrym tego przykładem są oryginalne gry Pokémon i Legend of Zelda ze starego chłopca, wtedy każdy obszar przechowuje dla siebie "miniaturę" kafelka jako bitmapę . Są one następnie umieszczane w odpowiednich miejscach na siatce w zależności od tego, jakie obszary zostały odkryte.

Jest to prawdopodobnie najbardziej elastyczny sposób na zbudowanie mapy, ponieważ nie polegasz na ustawionej mapie bitowej dla całej mapy, co oznacza, że ​​może ona efektywnie zmieniać wygląd; możesz go zbudować zgodnie z życzeniem, aby pokazać wybrane obszary (przydatne, jeśli mapa pokazuje tylko miejsca, które gracz zakrył) i oznacza to, że możesz nakładać nakładkę:

tj. - jeśli pewien obszar powinien zawierać skarby, tam jest ikona skarbu nałożona na to płytki x, y pozycja na mapie siatki.

Użyłem opcji kafelkowania w moich projektach w grach z uczelni, co ułatwiło porównywanie wszystkich innych map. Zrobiło to również mniejszą przestrzeń przechowywania na mapie.