java.-tworzenie-gier cała książka.pdf

(17643 KB) Pobierz
887708176.001.png
6
Java. Tworzenie gier
Rysunki przyspieszane sprztowo ..............................................................................56
Program testujcy wydajno,/ rysowania rysunków ...................................................58
Animacja.....................................................................................................................61
Renderowanie aktywne...............................................................................................64
Ptla animacji..............................................................................................................64
Usuwanie migotania i szarpania........................................................................................67
Podwójne buforowanie ...............................................................................................67
Przełczanie stron .......................................................................................................68
Od,wie'anie monitora i szarpanie ..............................................................................70
Klasa BufferStrategy...................................................................................................70
Tworzenie zarzdcy ekranów .....................................................................................71
Duszki .........................................................................................................................78
Proste efekty......................................................................................................................84
Przekształcenia rysunków...........................................................................................84
Podsumowanie ..................................................................................................................89
Rozdział 3. Interaktywno() i interfejs u*ytkownika ............................................. 91
Model zdarze) AWT.........................................................................................................94
Zdarzenia klawiatury.........................................................................................................95
Zdarzenia myszy ...............................................................................................................99
Przesuwanie myszy metod „rozgldania si”................................................................103
Ukrywanie wskaFnika myszy ...................................................................................107
Tworzenie klasy InputManager.......................................................................................108
Zastosowanie obiektu InputManager ..............................................................................119
Zatrzymywanie gry...................................................................................................119
Dodajemy grawitacj ................................................................................................120
Projektowanie intuicyjnych interfejsów u'ytkownika....................................................125
Wskazówki do projektu interfejsu u'ytkownika.......................................................126
Wykorzystanie komponentów Swing..............................................................................127
Podstawy Swing........................................................................................................127
Stosowanie Swing w trybie pełnoekranowym..........................................................128
Tworzenie prostego menu...............................................................................................130
Konfiguracja klawiatury przez u'ytkownika ..................................................................135
Podsumowanie ................................................................................................................141
Rozdział 4. Efekty d-wikowe oraz muzyka....................................................... 143
Podstawy dFwiku...........................................................................................................144
API Java Sound...............................................................................................................144
Otwieranie pliku dFwikowego ................................................................................145
Zastosowanie interfejsu Line....................................................................................145
Odtwarzanie dFwików...................................................................................................146
Tworzenie architektury filtrów działajcych w czasie rzeczywistym.............................151
Tworzenie filtra „echo”, działajcego w czasie rzeczywistym.......................................155
Emulacja dFwiku 3D .....................................................................................................159
Mechanizmy potrzebne do tworzenia filtra 3D ........................................................160
Implementacja filtra 3D............................................................................................161
Testowanie filtra 3D .................................................................................................163
Tworzenie obiektu zarzdzajcego dFwikiem...............................................................167
Klasa Sound..............................................................................................................167
Klasa SoundManager................................................................................................168
Zmienne lokalne dla wtków....................................................................................175
Odtwarzanie muzyki .......................................................................................................176
Odtwarzanie dFwiku CD.........................................................................................177
Odtwarzanie plików MP3 i Ogg Vorbis ...................................................................177
Spis treci
7
Odtwarzanie muzyki MIDI.......................................................................................178
Tworzenie muzyki adaptacyjnej ...............................................................................182
Podsumowanie ................................................................................................................184
Rozdział 5. Tworzenie dwuwymiarowej gry platformowej ................................... 185
Tworzenie mapy zło'onej z kafelków.............................................................................186
Implementacja mapy korzystajcej z kafelków........................................................187
Ładowanie mapy zło'onej z kafelków......................................................................190
Rysowanie mapy zło'onej z kafelków......................................................................193
Rysowanie duszków..................................................................................................195
Przewijanie z paralaks.............................................................................................195
Premie .......................................................................................................................197
Proste obiekty wrogów .............................................................................................200
Wykrywanie kolizji.........................................................................................................207
Detekcja kolizji.........................................................................................................207
Obsługa kolizji..........................................................................................................208
Kolizje duszków........................................................................................................212
Doko)czenie i przyspieszanie gry...................................................................................213
Tworzenie wykonywalnego pliku .jar.............................................................................213
Pomysły na rozszerzenie gry...........................................................................................215
Podsumowanie ................................................................................................................216
Rozdział 6. Gry wieloosobowe .......................................................................... 217
Rewolucja w bibliotekach wej,cia-wyj,cia w jzyku Java.............................................219
Przegld bibliotek NIO z JDK 1.4............................................................................220
Kanały.......................................................................................................................220
Bufory .......................................................................................................................223
Selektory oraz klasy SelectionKey ...........................................................................226
ChatterBox, prosta aplikacja dla wielu u'ytkowników...................................................227
Serwer: ChatterServer...............................................................................................227
Kompilowanie i uruchamianie serwera ....................................................................233
Klient: ChatterClient.................................................................................................235
Kompilowanie i uruchamianie klienta......................................................................236
Szkielet serwera gry wieloosobowej...............................................................................237
Cele projektu i taktyka..............................................................................................237
Projekt.......................................................................................................................238
Wspólne klasy i interfejsy.........................................................................................242
Implementacja serwera .............................................................................................244
Klient.........................................................................................................................252
Przykładowa gra: RPS (kamie), papier, no'yczki).........................................................253
Klasy .........................................................................................................................253
Uruchamianie gry RPS .............................................................................................256
Wyko)czanie gry: rozbudowa szkieletu .........................................................................258
Interfejs klienta .........................................................................................................258
Trwało,/....................................................................................................................258
Listy znajomych, pokoje i czat .................................................................................258
Administracja serwera.....................................................................................................259
Rejestracja zdarze) ...................................................................................................259
Uruchamianie i wyłczanie.......................................................................................260
Konsole administracyjne serwera .............................................................................261
Nledzenie gry.............................................................................................................261
Zagadnienia zaawansowane............................................................................................262
Rozłczenia i ponowne połczenia...........................................................................262
Tunelowanie HTTP...................................................................................................263
8
Java. Tworzenie gier
Testowanie za pomoc botów...................................................................................265
Te niezno,ne modemy ..............................................................................................266
Profilowanie i tworzenie statystyk wydajno,ci.........................................................266
Dostrajanie wydajno,ci.............................................................................................268
Podsumowanie ................................................................................................................270
Cz II Grafika trójwymiarowa
i zaawansowane techniki programowania gier ...............271
Rozdział 7. Grafika trójwymiarowa ................................................................... 273
Typy renderowania grafiki trójwymiarowej ...................................................................274
Nie zapominajmy o matematyce.....................................................................................275
Trygonometria i trójkty prostoktne .......................................................................276
Wektory.....................................................................................................................276
Podstawy grafiki trójwymiarowej...................................................................................281
Algebra trzech wymiarów...............................................................................................284
Wielokty ........................................................................................................................289
Przekształcenia przestrzeni trójwymiarowej...................................................................292
Rotacje ......................................................................................................................293
Hermetyzacja przekształce) rotacji i translacji.........................................................295
Stosowanie transformacji..........................................................................................298
Porzdek rotacji ........................................................................................................300
Prosty potok tworzenia grafiki 3D ..................................................................................301
Ruch kamery ...................................................................................................................305
Bryły i usuwanie niewidocznych powierzchni................................................................305
Iloczyn skalarny wektorów.......................................................................................307
Iloczyn wektorowy wektorów...................................................................................308
Dodatkowe wła,ciwo,ci iloczynu skalarnego i wektorowego..................................311
Rysowanie wieloktów za pomoc konwertera skanujcego .........................................312
Optymalizowanie konwertera skanujcego za pomoc liczb stałoprzecinkowych ..317
Przycinanie w trzech wymiarach.....................................................................................321
Ostateczny potok renderowania ......................................................................................324
Podsumowanie ................................................................................................................332
Rozdział 8. Mapowanie tekstur i o(wietlenie .................................................... 333
Podstawy mapowania tekstur uwzgldniajcego perspektyw.......................................334
Wyprowadzenie równa) wykorzystywanych do mapowania tekstur.......................335
Prosty mechanizm mapowania tekstur............................................................................340
Wady naszego prostego mechanizmu renderujcego ...............................................347
Optymalizowanie mapowania tekstur.............................................................................348
Przechowywanie tekstur ...........................................................................................349
Prosta optymalizacja.................................................................................................352
Rozwijanie metod w miejscu wywołania .................................................................356
Przykładowy program korzystajcy z szybkiego mapowania tekstur ......................358
Prosty mechanizm generowania o,wietlenia...................................................................359
Odbicie rozproszone .................................................................................................359
Nwiatło otoczenia......................................................................................................360
Uwzgldnianie intensywno,ci ,wiatła pochodzcego ze Fródła ,wiatła ..................360
Spadek intensywno,ci ,wiatła wraz z odległo,ci....................................................360
Implementowanie punktowego Fródła ,wiatła..........................................................361
Implementowanie o,wietlania tekstur.............................................................................362
Tworzenie zaawansowanych trików o,wietleniowych za pomoc map cieniowania.....369
Odnajdywanie prostokta ograniczajcego...............................................................369
Stosowanie mapy cieniowania..................................................................................371
Spis treci
9
Budowanie mapy cieniowania..................................................................................373
Budowanie powierzchni............................................................................................375
Przechowywanie powierzchni w pamici podrcznej ..............................................378
Przykład z cieniowaniem powierzchni .....................................................................384
Dodatkowe pomysły........................................................................................................385
Sugerowanie głbi.....................................................................................................385
Fałszywe cienie.........................................................................................................386
Mapowanie MIP........................................................................................................386
Interpolacja dwuliniowa............................................................................................386
Interpolacja trójliniowa.............................................................................................387
Mapy wektorów normalnych i mapy głboko,ci......................................................387
Inne typy o,wietlenia................................................................................................388
Podsumowanie ................................................................................................................388
Rozdział 9. Obiekty trójwymiarowe................................................................... 389
Usuwanie ukrytych powierzchni.....................................................................................390
Algorytm malarza .....................................................................................................390
Odwrotny algorytm malarza .....................................................................................391
Z-bufor......................................................................................................................391
Z-bufor z warto,ciami 1/z.........................................................................................393
Obliczanie z-głboko,ci............................................................................................396
Animacja trójwymiarowa................................................................................................397
Ruch postpowy........................................................................................................400
Ruch obrotowy..........................................................................................................402
Grupy wieloktów...........................................................................................................407
Iteracyjna obsługa wszystkich wieloktów nale'cych do grupy.............................411
Wczytywanie grup wieloktów z pliku OBJ...................................................................413
Format pliku OBJ......................................................................................................414
Format pliku MTL ....................................................................................................420
Obiekty w grze ................................................................................................................421
Zarzdzanie obiektami w grze.........................................................................................425
Łczenie elementów........................................................................................................427
Mo'liwe rozszerzenia w przyszło,ci...............................................................................433
Podsumowanie ................................................................................................................434
Rozdział 10. Zarzdzanie scen trójwymiarow za pomoc drzew BSP ................ 435
Wprowadzenie do drzew BSP.........................................................................................436
Podstawy drzew binarnych..............................................................................................437
Jednowymiarowe drzewo BSP........................................................................................440
Dwuwymiarowe drzewo BSP .........................................................................................442
Przykład budowy drzewa BSP..................................................................................443
Przykład przegldania drzewa BSP ..........................................................................447
Implementacja dwuwymiarowego drzewa BSP..............................................................448
Linia podziału BSP ...................................................................................................450
Wyznaczanie poło'enia punktu wzgldem linii .......................................................450
Dwójkowy podział wielokta ...................................................................................454
Przegldanie drzewa BSP .........................................................................................455
Przegldanie poprzeczne...........................................................................................457
Przegldanie od przodu do tyłu.................................................................................458
Budowa drzewa.........................................................................................................459
Znajdowanie punktu przecicia dwóch prostych......................................................463
Przycinanie wieloktów do linii................................................................................465
Usuwanie pustych przestrzeni T-złczy....................................................................467
Testowanie drzewa BSP ...........................................................................................469
Zgłoś jeśli naruszono regulamin