J2ME_Tworzenie_gier_j2metg.pdf

(478 KB) Pobierz
J2ME. Tworzenie gier
Autor: Janusz Grzyb
ISBN: 978-83-246-1263-5
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”
Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Nie szukaj w sieci gier do swojej komórki — napisz w³asn¹!
Spis treści
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
Rozdział 2. Interfejs użytkownika ..................................................................... 39
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
4
J2ME. Tworzenie gier
Podsumowanie ................................................................................................................. 74
Pytania kontrolne ............................................................................................................. 74
Zadania ............................................................................................................................ 75
Rozdział 3. Gry 3D w 2D — Wolfenstein ........................................................... 77
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
Rozdział 4. Wprowadzenie do Java Mobile 3D ................................................... 99
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
Spis treści
5
Rozdział 5. Tryb Retained Java Mobile 3D ....................................................... 139
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
Rozdział 6. Gry sieciowe poprzez
łącza
Bluetooth ............................................ 175
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
Rozdział 7. Gra 3D Multiplayer ....................................................................... 203
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
6
J2ME. Tworzenie gier
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 A Odpowiedzi do pytań kontrolnych .................................................. 235
Dodatek B Odpowiedzi i wskazówki do zadań ................................................. 243
Skorowidz .................................................................................... 259
Zgłoś jeśli naruszono regulamin