Programowanie_gier_Kompendium_prgkom.pdf

(663 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
Programowanie gier.
Kompendium
Autor: Bruno Miguel Teixeira de Sousa
T³umaczenie: Bochenek Adam, Dobrzañski
Jaros³aw, Dzieniszewski S³awomir
ISBN: 83-7361-119-3
Tytu³ orygina³u:
Game Programming All In One
Format: B5, stron: 776
Ksi¹¿ka „Programowanie gier. Kompendium” dostarczy ca³ej potrzebnej wiedzy,
by sta³ siê twórc¹ pasjonuj¹cych gier komputerowych.
Podzielona na rozdzia³y zgodnie z poziomem zaawansowania, opisuje kolejno wszystkie
aspekty dotycz¹ce programowania gier. Mniej do wiadczeni czytelnicy poznaæ mog¹
zasady pos³ugiwania siê jêzykiem C++ i sprawdziæ swe umiejêtno ci pisz¹c dwie gry
tekstowe. Ale to tylko rozgrzewka przed skokiem w krainê DirectX i poznaniem
podstawowych sk³adników tej najbardziej rozrywkowej z bibliotek, czyli DirectX
Graphics, DirectSound i DirectInput. Twoje umiejêtno ci podniesie z pewno ci¹
zaprojektowanie w³asnych, uniwersalnych modu³ów, z pomoc¹ których tworzone
s¹ przyk³adowe programy.
Kolejna czê æ ksi¹¿ki opisuje w przystêpny sposób bardziej zaawansowane tematy,
takie jak matematyczne podstawy tworzenia gier, modelowanie fizyczne, sztuczna
inteligencja. Na zakoñczenie dowiesz siê, jak napisaæ prawdziw¹, du¿¹ i atrakcyjn¹
grê i... jak j¹ sprzedaæ.
Ksi¹¿ka zawiera:
• Podstawy C++ i rodowiska Visual C++
• Zmienne, operatory, funkcje C++
• Projekty wieloplikowe i preprocesor
• £añcuchy i wska niki
• Programowanie obiektowe: klasy, dziedziczenie
• Strumienie danych
• Projektowanie du¿ych aplikacji
• Projektowanie bibliotek gier
• Wprowadzenie do programowania w Windows i DirectX
• Grafika w DirectX, DirectInput i DirectSound
• Podstawowe algorytmy i struktury danych
• Matematyczne aspekty programowania gier
• Sztuczna inteligencja w grach
• Modelowanie fizyczne — pisanie gier opartych na prawach fizyki
• Publikowanie gier
TWÓJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
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 treści
O Autorze ..............................................................................................17
Wstęp ...................................................................................................19
Część I
Programowanie w języku C++ ............................................. 21
Dlaczego akurat C++?...............................................................................................................23
Praca z edytorem Visual C++ ...................................................................................................24
Tworzenie obszaru roboczego ............................................................................................24
Tworzenie projektów ..........................................................................................................25
Tworzenie i dodawanie plików...........................................................................................26
Pierwszy program: „Witajcie, dobrzy ludzie” ..........................................................................27
Struktura programu w C++ .......................................................................................................30
Język projektowania programów (PDL).............................................................................31
Kod źródłowy i jego kompilacja.........................................................................................32
Obiekty i konsolidacja ........................................................................................................32
Plik wykonywalny ..............................................................................................................33
Komentarze ...............................................................................................................................33
Szukanie błędów .......................................................................................................................34
Ostrze enia................................................................................................................................36
Podsumowanie ..........................................................................................................................37
Pytania i odpowiedzi.................................................................................................................38
Ćwiczenia..................................................................................................................................39
Rozdział 1. Wprowadzenie do programowania w C++ ................................................23
Rozdział 2. Zmienne i operatory ..............................................................................41
Zmienne i pamięć......................................................................................................................41
Typy zmiennych........................................................................................................................42
U ywanie zmiennych w programach........................................................................................44
Deklarowanie zmiennej ......................................................................................................44
U ywanie zmiennych..........................................................................................................45
Inicjowanie zmiennych.......................................................................................................46
Modyfikatory zmiennych..........................................................................................................47
Stałe (const) ........................................................................................................................47
Zmienna typu register .........................................................................................................48
Nazewnictwo zmiennych ..........................................................................................................49
Redefinicja nazw typów............................................................................................................49
Co to jest operator? ...................................................................................................................50
Operator przyporządkowania..............................................................................................50
Operatory matematyczne ....................................................................................................50
6
Programowanie gier. Kompendium
Operatory jednoargumentowe ............................................................................................51
Operatory dwuargumentowe ..............................................................................................52
Zło one operatory przyporządkowania ..............................................................................53
Operatory przesunięcia bitowego..............................................................................................54
Operatory porównania...............................................................................................................54
Operator warunkowy.................................................................................................................55
Operatory logiczne....................................................................................................................56
Kolejność operatorów ...............................................................................................................57
Podsumowanie ..........................................................................................................................58
Pytania i odpowiedzi.................................................................................................................59
Ćwiczenia..................................................................................................................................59
Rozdział 3. Funkcje i przebieg programu ..................................................................61
Funkcje: czym są i do czego się przydają? ...............................................................................61
Tworzenie i korzystanie z funkcji.............................................................................................63
Deklarowanie prototypu .....................................................................................................63
Parametry domyślne..................................................................................................................66
Zakres zmiennej ........................................................................................................................67
Zmienne lokalne .................................................................................................................68
Zmienne globalne ...............................................................................................................68
Zmienne statyczne ..............................................................................................................69
Rekurencja ................................................................................................................................70
O czym warto pamiętać, korzystając z funkcji? .......................................................................72
Przebieg programu ....................................................................................................................73
Bloki kodu i pojedyncze instrukcje...........................................................................................73
Instrukcje if, else if i else ..........................................................................................................73
if74
else ......................................................................................................................................75
Pętle while, do ... while i for .....................................................................................................76
while ...................................................................................................................................76
do ... while ..........................................................................................................................77
for........................................................................................................................................78
Przerywanie i kontynuacja pętli................................................................................................80
break ...................................................................................................................................80
continue...............................................................................................................................80
Instrukcja switch .......................................................................................................................82
Liczby losowe ...........................................................................................................................84
Pierwsza gra — „Craps” ...........................................................................................................87
Cel.......................................................................................................................................87
Zasady.................................................................................................................................87
Projekt.................................................................................................................................87
Implementacja.....................................................................................................................88
Podsumowanie ..........................................................................................................................94
Pytania i odpowiedzi.................................................................................................................94
Ćwiczenia..................................................................................................................................94
Rozdział 4. Projekty wieloplikowe i preprocesor .......................................................97
Pliki źródłowe a pliki nagłówków ............................................................................................97
Korzystanie z wielu plików.......................................................................................................98
Co to jest preprocesor?............................................................................................................100
Unikanie podwójnych załączeń ..............................................................................................101
U ycie dyrektywy #pragma..............................................................................................102
U ycie #ifdef, #define i #endif .........................................................................................102
Makra ......................................................................................................................................104
Inne dyrektywy preprocesora..................................................................................................105
Spis treści
7
Podsumowanie ........................................................................................................................105
Ćwiczenia................................................................................................................................105
Rozdział 5. Tablice, wskaźniki i łańcuchy ...............................................................107
Czym jest tablica? ...................................................................................................................107
Deklarowanie i u ywanie tablicy............................................................................................107
Deklaracja .........................................................................................................................108
U ywanie tablic ................................................................................................................108
Inicjowanie tablicy............................................................................................................110
Tablice wielowymiarowe........................................................................................................111
Co wskazują wskaźniki? .........................................................................................................113
Wskaźniki a zmienne ..............................................................................................................114
Deklaracja i inicjowanie ...................................................................................................114
U ywanie wskaźników .....................................................................................................114
Wskaźniki a tablice .................................................................................................................116
Związek wskaźników z tablicami.....................................................................................116
Przesyłanie tablic do funkcji.............................................................................................116
Deklaracja i rezerwacja pamięci dla wskaźnika .....................................................................118
Rezerwacja pamięci ..........................................................................................................118
Uwalnianie pamięci ..........................................................................................................119
Operatory wskaźnikowe..........................................................................................................121
Manipulowanie pamięcią ........................................................................................................124
memcpy.............................................................................................................................124
memset..............................................................................................................................125
Łańcuchy.................................................................................................................................125
Łańcuchy a tablice ............................................................................................................125
Korzystanie z łańcuchów..................................................................................................125
Operacje na łańcuchach ....................................................................................................126
Podsumowanie ........................................................................................................................141
Pytania i odpowiedzi...............................................................................................................141
Ćwiczenia................................................................................................................................142
Rozdział 6. Klasy...................................................................................................143
Czym jest klasa?......................................................................................................................143
Nowe typy.........................................................................................................................144
Tworzenie klas ........................................................................................................................144
Projektowanie ...................................................................................................................144
Definiowanie.....................................................................................................................145
Implementacja...................................................................................................................146
Korzystanie z klas ...................................................................................................................146
Składowe prywatne, publiczne i chronione ............................................................................146
Tryb prywatny (private)....................................................................................................147
Tryb publiczny (public) ....................................................................................................147
Tryb chroniony (protected)...............................................................................................148
Który tryb jest najlepszy? .................................................................................................148
Konstruktory i destruktory ......................................................................................................149
Konstruktor domyślny ......................................................................................................149
Konstruktory ogólne .........................................................................................................150
Konstruktor kopiujący i wskazania ..................................................................................150
Destruktor .........................................................................................................................151
Przeładowywanie operatorów .................................................................................................152
Przykład zastosowania klas — klasa String............................................................................153
Podstawy dziedziczenia i polimorfizmu .................................................................................158
Dziedziczenie....................................................................................................................158
Polimorfizm ......................................................................................................................163
8
Programowanie gier. Kompendium
Wyliczenia ..............................................................................................................................166
Unie.........................................................................................................................................167
Składowe statyczne .................................................................................................................168
Przydatne techniki korzystania z klas .....................................................................................169
Klasa singleton..................................................................................................................169
Fabryka obiektów .............................................................................................................172
Podsumowanie ........................................................................................................................176
Pytania i odpowiedzi...............................................................................................................177
Ćwiczenia................................................................................................................................177
Rozdział 7. „Potwór” — pierwsza prawdziwa gra ....................................................179
ConLib ....................................................................................................................................179
Projektowanie ...................................................................................................................180
Implementacja...................................................................................................................182
Tworzenie „Potwora”..............................................................................................................192
Cel gry ..............................................................................................................................192
Reguły gry ........................................................................................................................193
Projektowanie gry.............................................................................................................193
Implementacja...................................................................................................................197
Podsumowanie ........................................................................................................................215
Rozdział 8. Strumienie...........................................................................................217
Co to jest strumień?.................................................................................................................217
Strumienie binarne i tekstowe.................................................................................................217
Wejście i wyjście ....................................................................................................................218
istream...............................................................................................................................218
ostream..............................................................................................................................221
Strumienie plików ...................................................................................................................223
Otwieranie i zamykanie strumieni ....................................................................................223
Tekst .................................................................................................................................227
Tryb binarny .....................................................................................................................232
Modyfikacja gry „Potwór” — zapisywanie i odczyt gry........................................................236
Podsumowanie ........................................................................................................................242
Pytania i odpowiedzi...............................................................................................................242
Ćwiczenia................................................................................................................................243
Rozdział 9. Architektura oprogramowania ..............................................................245
Rola projektowania w tworzeniu programów.........................................................................245
Strategie projektowe ...............................................................................................................246
Strategia odgórna ..............................................................................................................246
Strategia oddolna ..............................................................................................................246
Strategia odgórna kontra oddolna.....................................................................................247
Kilka podstawowych technik ..................................................................................................247
Przykład 1. Operator przyporządkowania zamiast równości ...........................................247
Przykład 2. Instrukcje kontra bloki...................................................................................248
Przykład 3. Makra kontra funkcje inline ..........................................................................248
Przykład 4. Prywatne kontra publiczne, przypadek pierwszy ..........................................249
Przykład 5. Prywatne kontra publiczne, przypadek drugi ................................................250
Moduły i stosowanie wielu plików .........................................................................................251
Tworzenie modułów w C++ .............................................................................................251
Dlaczego warto tworzyć moduły? ....................................................................................252
Konwencje nazewnicze...........................................................................................................252
Nazywanie funkcji ............................................................................................................252
Nazwy zmiennych ............................................................................................................253
Identyfikacja .....................................................................................................................253
Zgłoś jeśli naruszono regulamin