
Stwórz własną grę do telefonu komórkowego
- Poznaj technologię J2ME
- Zaprojektuj interfejs użytkownika dla gry
- Zaimplementuj mechanizmy wyświetlania grafiki 3D
Współczesne telefony komórkowe przestały być urządzeniami wykorzystywanymi wyłącznie do prowadzenia rozmów i wysyłania wiadomości SMS. Można je dziś stosować do wielu innych celów -- pełnią rolę notatników, dyktafonów, aparatów fotograficznych, odtwarzaczy plików MP3 i przenośnych konsoli do gier. Jednak największe możliwości telefony komórkowe uzyskały dzięki zaimplementowaniu w nich języka Java. Mobilna Java pozwala nie tylko na tworzenie dodatkowych narzędzi, ale także gier -- zarówno prostych platformówek, jak i skomplikowanych gier wykorzystujących złożone algorytmy wyświetlania grafiki trójwymiarowej.
Książka "J2ME. Tworzenie gier" to podręcznik, dzięki któremu opanujesz technologię J2ME i wykorzystasz ją do napisania własnej gry do telefonu komórkowego. Czytając ją, poznasz podstawy mobilnej Javy, zainstalujesz narzędzia niezbędne do pracy i dowiesz się, jak zbudowana jest aplikacja przeznaczona do wykorzystania w tym urządzeniu. Zaprojektujesz interfejs użytkownika i zastosujesz podstawowe metody generowania grafiki 2D. Poznasz także bibliotekę Java Mobile 3D i wykorzystasz ją do stworzenia prawdziwej gry z trójwymiarową grafiką, uwzględniającą tekstury obiektów, oświetlenie i cieniowanie. Dowiesz się również, jak budować gry dla wielu graczy łączących się ze sobą poprzez interfejs Bluetooth.
- Instalacja i konfiguracja narzędzi Wireless Toolkit, Ant i Antenna
- Tworzenie interfejsu użytkownika
- Rysowanie podstawowych obiektów graficznych
- Algorytm śledzenia promieni światła
- Reprezentacja obiektów 3D w Java Mobile 3D
- Modelowanie oświetlenia i cieniowania
- Animowanie obiektów
- Przygotowanie sceny gry w programie Blender
- Komunikacja poprzez interfejs Bluetooth
- Tworzenie gry typu "multiplayer"
Nie szukaj w sieci gier do swojej komórki -- napisz własną!
Wstęp (7)Rozdział 1. Podstawy (11)
- Konfiguracja (12)
- Profil (12)
- Najpopularniejsze pakiety opcjonalne (13)
- Hello World (15)
- Wireless Toolkit (17)
- Instalacja pakietu (17)
- KToolbar (19)
- Narzędzia specjalne (22)
- Ant (25)
- Instalacja (26)
- Praca z Antem (27)
- Tworzenie wersji dystrybucyjnej aplikacji (30)
- Antenna (32)
- Instalacja (32)
- Nowa wersja skryptu - wykorzystujemy Antennę (33)
- WTKPREPROCESS i kompilacja warunkowa w Javie (35)
- Podsumowanie (37)
- Pytania kontrolne (38)
- Zadania (38)
- Podstawy interfejsu graficznego midletów (39)
- Hierarchia klas interfejsu użytkownika (41)
- Komendy (42)
- Dodajemy więcej ekranów (45)
- Pozostałe ekrany interfejsu wysokopoziomowego (48)
- Lista wyboru (48)
- Alert (50)
- Klasy Form i Item - kontrolki złożone (52)
- Interfejs niskopoziomowy (55)
- Klasa Canvas i Graphics (56)
- Rysowanie na płaszczyźnie ekranu (58)
- Obsługa zdarzeń (68)
- Podsumowanie (74)
- Pytania kontrolne (74)
- Zadania (75)
- Raycasting (77)
- Algorytm DDA śledzenia promienia (81)
- Implementacja - wersja uproszczona (84)
- Klasa Raycaster (84)
- Klasa Player (89)
- Klasa midletu (90)
- Jeszcze jeden problem (92)
- Metoda dokładna (93)
- Obliczamy współrzędne wektora promienia (93)
- Algorytm DDA w metodzie dokładnych podziałów (94)
- Poprawiona implementacja metody Render (95)
- Podsumowanie (97)
- Pytania kontrolne (98)
- Zadania (98)
- Reprezentacja obiektów 3D (100)
- Układy współrzędnych (101)
- Układ globalny, układy lokalne i pozycjonowanie kamery (102)
- Transformacje w przestrzeni trójwymiarowej (102)
- Macierze w Java Mobile 3D (103)
- Zastosowanie macierzy w praktyce (104)
- Orientacja trójkątów (105)
- Orientacja trójkątów (105)
- Bufory wierzchołków (106)
- Bufory indeksów (107)
- Pierwszy przykład w trybie immediate (108)
- Inicjalizacja (110)
- Rendering (112)
- Animacja kamery (114)
- Dodajemy oświetlenie (115)
- Model Phonga (115)
- Model oświetlenia w Java Mobile 3D (115)
- Dodajemy źródła światła do sceny (116)
- Materiały (116)
- Dodajemy wektory normalne do bufora wierzchołków (117)
- Kod przykładu z dodanymi źródłami światła (118)
- Teksturujemy walec (120)
- Teksturowanie w Java Mobile 3D (121)
- Zaawansowany przykład grafiki w trybie "immediate" (125)
- Metoda "map wysokości" (126)
- Klasa "Terrain" (127)
- Tworzenie bufora wierzchołków (132)
- Generujemy współrzędne mapowania tekstur (133)
- Tworzymy bufor indeksów - Triangle Strip (133)
- Efekt mgły (136)
- Podsumowanie (137)
- Pytania kontrolne (137)
- Zadania (138)
- Graf sceny (140)
- Hierarchia klas grafu sceny (142)
- Animacja (146)
- Klatki kluczowe (146)
- Wiążemy animację z właściwościami obiektu (147)
- Czas i kontrola animacji (148)
- Wyświetlanie plików M3G (151)
- Przygotowanie sceny (151)
- Eksport sceny do formatu M3G (157)
- Wyświetlanie sceny na urządzeniu mobilnym (159)
- Wyświetlanie animowanej sceny (160)
- Efekty specjalne (162)
- Billboarding - rysujemy drzewa (162)
- Animacja - tworzymy efekt eksplozji (165)
- Kolizje - strzelamy do celu (170)
- Podsumowanie (173)
- Pytania kontrolne (173)
- Zadania (174)
- Charakterystyka sieci w technologii Bluetooth (176)
- Aplikacje klient-serwer w technologii Bluetooth (177)
- Rola serwera w grze sieciowej (177)
- Rola klienta w grze sieciowej (178)
- Typowy scenariusz gry sieciowej (178)
- Najważniejsze pojęcia Java Bluetooth (181)
- Identyfikator usługi (181)
- Kod klasy urządzenia (181)
- Dostępność (wykrywalność) urządzenia Bluetooth (182)
- GCF - Generic Connection Framework (182)
- Rejestracja usługi (183)
- Implementacja (184)
- Ekran wyboru roli aplikacji (185)
- Ekran wyszukiwania potencjalnych graczy (185)
- Ekran wyboru uczestników gry (189)
- Ekran klienta oczekującego na start gry (192)
- Klasa BluetoothConnection (195)
- Logika gry (197)
- Podsumowanie (201)
- Pytania kontrolne (202)
- Zadania (202)
- Scenariusz gry "Cosmic Speedway" (203)
- Sztuczna inteligencja przeciwników (204)
- Wyścigi i gracze komputerowi (204)
- Tor i reprezentacja trasy (207)
- Sterowanie i logika gracza (212)
- Klasa główna gry - Game (216)
- Inicjalizacja (216)
- Krokowanie logiki gry (216)
- Maszyna stanów (217)
- Klasa MyCanvas (223)
- Klasa Player (224)
- Dodajemy opcję "Multiplayer" (225)
- Okno wyboru trybu gry (226)
- Inicjalizacja (227)
- Gracz sieciowy (229)
- Modyfikacja klasy MyCanvas (230)
- Podsumowanie (233)
- Pytania kontrolne (233)
- Zadania (234)
Dodatek B Odpowiedzi i wskazówki do zadań (243)
Skorowidz (259)