2010-06-17 16 views
6

Staram się zrobić łatwą przewijanie strony tylko po to, aby nauczyć się programowania gier na Androida. Wpadłem na pomysł, jak to zrobić, ale nie sądzę, że jest to najbardziej eleganckie rozwiązanie. Chciałem uzyskać różne pomysły na wdrożenie mojej gry, ponieważ obecnie nie mam innego rozwiązania.Przewijanie strony Java na Androidzie

Oto krótkie wyjaśnienie jak to działa ..

Mam zasadniczo bloki lub przedmioty spadają z góry ekranu. Bloki są definiowane na podstawie predefiniowanego łańcucha, który tworzę przy użyciu niestandardowego "edytora map".

Tworzę wszystkie bloki w czasie kompilacji, umieszczam je na ekranie lub poza nim i po prostu zwiększam ich współrzędne przy każdej iteracji gameloop.

Wykonuje się to nieco lepiej, ale to daje krótkie, łatwe wyjaśnienie podstawowej idei.

Usłyszałem od kilku osób, że zamiast zwiększać liczbę bloków, blokują się i po prostu zmieniają widoczny obszar. To ma sens, ale nie mam pojęcia, jak to zrobić.

Czy ktoś może podzielić się pomysłami lub linkami na temat tego, jak mogę zaimplementować coś takiego? Wiem, że moje obecne rozwiązanie nie jest najlepsze.

Dzięki!

Odpowiedz

7

Do nauki lin do programowania gier na Androida chciałbym wskazać na Google I/O 2009 - Writing Real-Time Games for Android sesję I/O z zeszłego roku i this jedną z sesji 2010.

Osoby mówiące o zmianie widocznego obszaru prawdopodobnie zakładają, że korzystasz z OpenGL ES, co może nie być, ale prawdopodobnie powinno wziąć pod uwagę.

+0

To są świetne linki, dziękuję bardzo – hanesjw

3

Jeśli bloki/obiekty są od siebie niezależne, nadal będę traktował je jako niezależne obiekty i aktualizuję ich pozycję osobno. W końcu możesz kiedyś chcieć, aby niektóre z nich poruszały się inaczej od siebie. W rozwoju gier dobrze jest pozostawić silnik tak elastyczny, jak tylko możesz, tak długo, jak możesz - polerowanie gry wiąże się z wieloma testami i dopracowaniem mechaniki gry, a tym bardziej, że musisz ulepszyć bardziej dopracowany, możesz go zdobyć. Optymalizuj tylko w razie potrzeby.

Ale jeśli bloki nie są niezależne i nie będą, zmiana obszaru wyświetlania zamiast przesuwania każdego bloku może być dobrym pomysłem, chociaż więcej informacji na temat gry może pomóc - czy jest to platformówka? Strzelec? Jeśli na polu gry znajduje się jakiś obiekt kontrolowany przez gracza, musisz zmienić jego pozycję, aby zachować go na ekranie, gdy zmieniasz widoczny obszar, co może sprawiać nadmierną komplikację. Trudno doradzić bez szczegółów.

Dobre pytanie!

EDIT:

obserwuję swój komentarz, a ja zobaczyłam inną sprawę Problem decrementing in Java with '-='; Myślę, że lepiej rozumiem twoje pytanie - najważniejszą rzeczą, którą chciałbym zmienić, z punktu widzenia projektowania, byłoby stworzenie bloków w razie potrzeby, zamiast tworzenia wszystkich naraz. Innymi słowy, utwórz klocki na klatce, zanim pojawią się one na ekranie, a gdy znikną z ekranu, usuń je. O ile projekt gry nie wymaga dużego, trwałego świata, to oczywiście - ale nie brzmi to jak ta gra. Czy gracz może się cofnąć, czy pozwalasz tylko na przewijanie w jedną stronę?

+0

Dziękuję za odpowiedź. Podstawową ideą gry jest to, że masz postać, klocki spadają i próbujesz ich uniknąć, przesuwając postać. Więc bloki są niezależne. Musiałbym zachować lokalizację wszystkich dla wykrywania kolizji, które zakładam. Więc może mam dobry pomysł. – hanesjw

Powiązane problemy