Java Tworzenie gier.pdf
(
786 KB
)
Pobierz
C:\Andrzej\PDF\ABC nagrywania p³yt CD\1 strona.cdr
IDZ DO
PRZYK£ADOW
Y ROZDZIA£
Java. Tworzenie gier
SPIS TRECI
KATALOG KSI¥¯EK
Autorzy: David Brackeen, Bret Barker, Laurence Vanhelsuwe
T³umaczenie: S³awomir Dzieniszewski (rozdz. 7, 8, 12),
Pawe³ Gonera (rozdz. 1 – 6, 14 – 16), Miko³aj
Szczepaniak (rozdz. 9 – 11, 13, 17 – 19)
ISBN: 83-7361-411-7
Tytu³ orygina³
u:
Developing Games in Java
Format: B5, stron: 756
Przyk³ady na ftp: 4924 kB
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
Wykorzystaj do tworzenia gier
najpopularniejszy jêzyk programowania ery internetu
Java jest nowoczesnym i prostym jêzykiem programowania zorientowanym obiektowo.
Trudno nie doceniaæ jej zalet — czytelna i zrozumia³a sk³adnia, uniwersalny, niezale¿ny
od platformy kod i przede wszystkich bezp³atny dostêp do doskona³ych narzêdzi
programistycznych. Javê doceni³o ju¿ wielu twórców oprogramowania, wród których
brakowa³o jednak twórców gier i aplikacji „rozrywkowych”. Dotychczas w Javie
tworzono jedynie proste uk³adanki, gry karciane i ³amig³ówki lub niemiertelne aplety
typu „padaj¹cy nieg”, które przez d³ugi czas straszy³y nas z przegl¹darek
internetowych. Czas na zmianê! Wykorzystaj swoje umiejêtnoci programowania
w Javie, siêgnij po wiadomoci zawarte w tej ksi¹¿ce i napisz prawdziw¹ grê —
z grafik¹, inteligentnymi przeciwnikami, wydajnym silnikiem 3D wspomaganym
sprzêtowo i przestrzennym dwiêkiem.
„Java. Tworzenie gier” to ksi¹¿ka o programowaniu gier, na jak¹ czeka³e. Zawiera
zarówno opis podstawowych mechanizmów u¿ywanych w grach, jak i szczegó³owe
omówienie zaawansowanych technik. Dowiesz siê, jak wykorzystaæ platformê Java 1.4
do tworzenia szybkich, pe³noekranowych gier akcji, przygodówek i trójwymiarowych
strzelanek. Nauczysz siê tworzyæ wspomagan¹ sprzêtowo grafikê, algorytmy sztucznej
inteligencji i znajdowania drogi, realistyczne efekty dwiêkowe i mechanizmy obs³ugi
gry dla wielu graczy.
• Algorytmy wywietlania grafiki 2D
• Tworzenie interfejsu u¿ytkownika z wykorzystaniem komponentów Swing
• Programowanie efektów dwiêkowych dzia³aj¹cych w czasie rzeczywistym
• Klient i serwer gry wieloosobowej
• Wywietlanie grafiki 3D
• Mapowanie tekstur i symulacja owietlenia
• Drzewa BSP
• Algorytmy detekcji kolizji i wykrywania drogi
• Sztuczna inteligencja i tworzenie botów
• Zapisywanie stanu gry
• Optymalizacja kodu
• System sterowania gr¹
Udowodnij „fachowcom” krytykuj¹cym szybkoæ Javy, ¿e nie maj¹ racji.
Napisz wspania³¹ grê w Javie. W tej ksi¹¿ce znajdziesz wszystkie wiadomoci,
które s¹ do tego niezbêdne.
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treci
O Autorze ........................................................................................ 15
Wstp ............................................................................................. 17
Cz I Podstawy gier w jzyku Java ..........................................25
Rozdział 1. Wtki w jzyku Java ........................................................................ 27
Co to jest wtek? ...............................................................................................................28
Tworzenie i uruchamianie wtków w jzyku Java............................................................28
Rozszerzanie klasy Thread.........................................................................................29
Implementacja interfejsu Runnable ............................................................................29
U'ycie anonimowej klasy wewntrznej......................................................................29
Oczekiwanie na zako)czenie wtku ...........................................................................30
U,pione wtki .............................................................................................................30
Synchronizacja ..................................................................................................................30
Po co nam synchronizacja?.........................................................................................30
Jak synchronizowa/? ..................................................................................................31
Kiedy nale'y synchronizowa/?...................................................................................32
Kiedy nie synchronizowa/?........................................................................................33
Unikanie zakleszcze)..................................................................................................33
U'ycie wait() oraz notify()................................................................................................34
Model zdarze) Javy...........................................................................................................35
Kiedy u'ywa/ wtków? ....................................................................................................36
Kiedy nie u'ywa/ wtków?...............................................................................................36
Podsumowanie: pule wtków............................................................................................36
Podsumowanie ..................................................................................................................41
Rozdział 2. Grafika 2D oraz animacja ................................................................. 43
Grafika pełnoekranowa .....................................................................................................44
Układ ekranu...............................................................................................................44
Kolor piksela i głbia koloru.......................................................................................45
Czstotliwo,/ od,wie'ania .........................................................................................46
Przełczanie do trybu pełnoekranowego ....................................................................46
Anti-aliasing................................................................................................................50
Który tryb graficzny nale'y zastosowa/? ...................................................................51
Rysunki..............................................................................................................................52
Przezroczysto,/...........................................................................................................52
Formaty plików...........................................................................................................52
Odczytywanie rysunków.............................................................................................53
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
Plik z chomika:
kronos78
Inne pliki z tego folderu:
Asembler dla procesorow Intel Vademecum profesjonalisty.pdf
(400 KB)
Asembler cwiczenia praktyczne.pdf
(358 KB)
Architektura systemow zarzadzania przedsiebiorstwem Wzorce projektowe.pdf
(829 KB)
Architektura oprogramowania Metody oceny oraz analiza przypadkow.pdf
(429 KB)
Aplikacje w Visual C++ 2005 Przyklady.pdf
(296 KB)
Inne foldery tego chomika:
!!!!!!!!ze słowackiego radia, niektore opisanie, inne nie
# - Wzory CV
▶ Porady remontowo - budowlane
▶ Remont domu - poradnik
• AGD - kody błędów pralek automatycznych
Zgłoś jeśli
naruszono regulamin