programowanie gier. kompendium cała książka.pdf

(12974 KB) Pobierz
887655452.001.png
6
Programowanie gier. Kompendium
Operatory jednoargumentowe ............................................................................................51
Operatory dwuargumentowe ..............................................................................................52
Zło7one operatory przyporzDdkowania ..............................................................................53
Operatory przesuni.cia bitowego..............................................................................................54
Operatory porównania...............................................................................................................54
Operator warunkowy.................................................................................................................55
Operatory logiczne....................................................................................................................56
KolejnoE< operatorów ...............................................................................................................57
Podsumowanie..........................................................................................................................58
Pytania i odpowiedzi.................................................................................................................59
9wiczenia..................................................................................................................................59
Rozdział 3. Funkcje i przebieg programu ..................................................................61
Funkcje: czym sD i do czego si. przydajD? ...............................................................................61
Tworzenie i korzystanie z funkcji.............................................................................................63
Deklarowanie prototypu .....................................................................................................63
Parametry domyElne..................................................................................................................66
Zakres zmiennej........................................................................................................................67
Zmienne lokalne .................................................................................................................68
Zmienne globalne ...............................................................................................................68
Zmienne statyczne ..............................................................................................................69
Rekurencja ................................................................................................................................70
O czym warto pami.ta<, korzystajDc 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
9wiczenia..................................................................................................................................94
Rozdział 4. Projekty wieloplikowe i preprocesor .......................................................97
Pliki 4ródłowe a pliki nagłówków ............................................................................................97
Korzystanie z wielu plików.......................................................................................................98
Co to jest preprocesor?............................................................................................................100
Unikanie podwójnych załDczeI ..............................................................................................101
U7ycie dyrektywy #pragma..............................................................................................102
U7ycie #ifdef, #define i #endif.........................................................................................102
Makra......................................................................................................................................104
Inne dyrektywy preprocesora..................................................................................................105
Spis treci
7
Podsumowanie........................................................................................................................105
9wiczenia................................................................................................................................105
Rozdział 5. Tablice, wska-niki i ła.cuchy...............................................................107
Czym jest tablica?...................................................................................................................107
Deklarowanie i u7ywanie tablicy............................................................................................107
Deklaracja.........................................................................................................................108
U7ywanie tablic ................................................................................................................108
Inicjowanie tablicy............................................................................................................110
Tablice wielowymiarowe........................................................................................................111
Co wskazujD wska4niki?.........................................................................................................113
Wska4niki a zmienne ..............................................................................................................114
Deklaracja i inicjowanie ...................................................................................................114
U7ywanie wska4ników.....................................................................................................114
Wska4niki a tablice.................................................................................................................116
ZwiDzek wska4ników z tablicami.....................................................................................116
Przesyłanie tablic do funkcji.............................................................................................116
Deklaracja i rezerwacja pami.ci dla wska4nika .....................................................................118
Rezerwacja pami.ci..........................................................................................................118
Uwalnianie pami.ci ..........................................................................................................119
Operatory wska4nikowe..........................................................................................................121
Manipulowanie pami.ciD........................................................................................................124
memcpy.............................................................................................................................124
memset..............................................................................................................................125
ŁaIcuchy.................................................................................................................................125
ŁaIcuchy a tablice............................................................................................................125
Korzystanie z łaIcuchów..................................................................................................125
Operacje na łaIcuchach....................................................................................................126
Podsumowanie........................................................................................................................141
Pytania i odpowiedzi...............................................................................................................141
9wiczenia................................................................................................................................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 domyElny ......................................................................................................149
Konstruktory ogólne.........................................................................................................150
Konstruktor kopiujDcy 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
9wiczenia................................................................................................................................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 strumieI?.................................................................................................................217
Strumienie binarne i tekstowe.................................................................................................217
WejEcie i wyjEcie ....................................................................................................................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
9wiczenia................................................................................................................................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 przyporzDdkowania zamiast równoEci ...........................................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
Spis treci
9
Gdzie zdrowy rozsDdek wygrywa z projektem.......................................................................254
Metoda projektowania u7ywana w tej ksiD7ce........................................................................254
Podsumowanie........................................................................................................................256
Pytania i odpowiedzi...............................................................................................................256
9wiczenia................................................................................................................................257
Cz II Programowanie w rodowisku Windows.............................259
Rozdział 10. Projektowanie biblioteki gier: Mirus .....................................................261
Opis ogólny.............................................................................................................................261
Komponenty biblioteki Mirus.................................................................................................262
Komponent pomocniczy .........................................................................................................262
Komponent Windows .............................................................................................................263
Komponent graficzny..............................................................................................................263
mrScreen...........................................................................................................................264
mrRGBAImage.................................................................................................................264
mrSurface..........................................................................................................................264
mrTexture .........................................................................................................................265
mrTemplateSet..................................................................................................................265
mrAnimation.....................................................................................................................265
mrABO .............................................................................................................................265
Komponent d4wi.kowy ..........................................................................................................266
mrSoundPlayer .................................................................................................................266
mrCDPlayer......................................................................................................................266
Komponent komunikacji z u7ytkownikiem............................................................................267
mrKeyboard......................................................................................................................267
mrMouse...........................................................................................................................267
mrJoystick.........................................................................................................................268
Tworzenie komponentu pomocniczego ..................................................................................268
Deklarowanie typów.........................................................................................................268
mrTimer............................................................................................................................269
Jak utworzy< plik bł.dów.................................................................................................274
Jak korzysta< z biblioteki Mirus .............................................................................................275
Podsumowanie........................................................................................................................275
Pytania i odpowiedzi...............................................................................................................275
Rozdział 11. Wprowadzenie do programowania w Windows.......................................277
Historia Windows ...................................................................................................................277
Wst.p do programowania w Windows...................................................................................278
Okna..................................................................................................................................278
WielozadaniowoE<............................................................................................................279
Windows ma swój własny API.........................................................................................280
Kolejki komunikatów .......................................................................................................280
Visual C++ a aplikacje Windows ...........................................................................................280
Tworzenie aplikacji Windows ................................................................................................281
WinMain kontra Main ......................................................................................................283
Tworzenie okna ................................................................................................................284
P.tla komunikatów ...........................................................................................................288
Obsługa komunikatów......................................................................................................289
Tworzenie p.tli komunikatów działajDcej w czasie rzeczywistym ........................................291
Tworzenie ogólnej klasy okna ................................................................................................294
Wykorzystanie szkieletu okna z biblioteki Mirus...................................................................301
Funkcje okien..........................................................................................................................302
SetPosition........................................................................................................................302
GetPosition .......................................................................................................................303
Zgłoś jeśli naruszono regulamin