Tworzenie aplikacji dla Windows Od prostych programow do gier komputerowych.pdf

(545 KB) Pobierz
Tworzenie aplikacji dla Windows. Od prostych programów do gier komputerowych
Tworzenie aplikacji
dla Windows.
Od prostych programów
do gier komputerowych
Autor: Pawe³ Borkowski
ISBN: 978-83-246-1881-1
Format: 158x235, stron: 456
Poznaj tajniki tworzenia aplikacji dla Windows
Jak okreœliæ po³o¿enie, rozmiar i styl okna?
Jak tworzyæ w¹tki aplikacji za pomoc¹ funkcji CreateThread?
Jak definiowaæ biblioteki?
Dev-C++ to zintegrowane œrodowisko programistyczne, którego niew¹tpliwym atutem
s¹ tzw. DevPaki, czyli rozszerzenia programu, pozwalaj¹ce korzystaæ z ró¿nych
bibliotek, szablonów i narzêdzi. Œrodowisko Dev-C++ wspomaga tak¿e pracê
nad nowym projektem Windows — gotowym kodem tworz¹cym okno z obs³ug¹
podstawowych komunikatów. Wszystko to sprawia, ¿e mamy do czynienia z wygodnym
i funkcjonalnym œrodowiskiem, zarówno dla pocz¹tkuj¹cych, jak i zaawansowanych
programistów.
Z ksi¹¿ki „Tworzenie aplikacji dla Windows. Od prostych programów do gier
komputerowych” mo¿e skorzystaæ ka¿dy, kto chce nauczyæ siê programowania:
zarówno studenci kierunków informatycznych, jak i osoby, które nie maj¹ takiego
przygotowania. Podrêcznik kolejno ods³ania poszczególne elementy wiedzy
programistycznej — od najprostszych po najbardziej zaawansowane. Dowiesz siê wiêc,
jak wprowadzaæ niewielkie zmiany w kodzie, jak projektowaæ aplikacje wielow¹tkowe
i definiowaæ biblioteki, jak budowaæ du¿e, sk³adaj¹ce siê z kilku plików projekty, aby
na koniec samodzielnie stworzyæ grê komputerow¹.
Instalacja œrodowiska Dev-C++
Tworzenie narzêdzia pióro
Obs³uga map bitowych
Obs³uga komunikatów myszy i klawiatury
Obiekty steruj¹ce w oknie
Menu i plik zasobów
Projektowanie aplikacji wielow¹tkowych
Biblioteki statyczne i dynamiczne
Multimedia
Programowanie gier
Naucz siê programowania i twórz w³asne gry!
319800035.001.png 319800035.002.png
Spis treści
Wstęp .............................................................................................. 7
Część I Dla początkujących ........................................................ 9
Rozdział 1. Instalacja środowiska Dev-C++ ....................................................... 11
Rozdział 2. Pierwszy program ........................................................................... 13
2.1. Przygotowanie edytora ....................................................................................... 13
2.2. Kod wygenerowany przez Dev-C++ .................................................................. 15
2.3. Określanie tytułu okna ....................................................................................... 19
2.4. Określanie położenia i rozmiaru okna ................................................................ 19
2.5. Określanie stylu okna ......................................................................................... 21
2.6. Ćwiczenia ........................................................................................................... 22
Rozdział 3. Rysowanie w oknie ........................................................................ 23
3.1. Obsługa komunikatu WM_PAINT .................................................................... 23
3.2. Zestawienie funkcji graficznych. Program
z użyciem funkcji Ellipse i LineTo .................................................................... 25
3.3. Wyświetlanie tekstu w obszarze roboczym okna ............................................... 28
3.4. Pierwszy program z użyciem funkcji SetPixel — wykres funkcji sinus ............ 34
3.5. Tworzenie pióra ................................................................................................. 39
3.6. Drugi program z użyciem funkcji SetPixel — zbiór Mandelbrota ..................... 42
3.7. Trzeci program z użyciem funkcji SetPixel — prosta obsługa bitmap ............... 48
3.8. Ćwiczenia ........................................................................................................... 55
Rozdział 4. Obsługa komunikatów myszy .......................................................... 57
4.1. Program z obsługą komunikatu WM_MOUSEMOVE ...................................... 57
4.2. Obsługa komunikatów WM_LBUTTONDOWN
i WM_RBUTTONDOWN — zbiór Mandelbrota po raz drugi .......................... 62
4.3. Obsługa komunikatów WM_MOUSEMOVE, WM_LBUTTONDOWN
i WM_RBUTTONDOWN — zbiór Mandelbrota a zbiory Julii ........................ 66
4.4. Tajemnica przycisków okna ............................................................................... 75
4.5. Ćwiczenia ........................................................................................................... 86
Rozdział 5. Obsługa komunikatów klawiatury .................................................... 87
5.1. Komunikaty klawiatury. Obsługa komunikatu WM_CHAR .............................. 87
5.2. Obsługa komunikatu WM_KEYDOWN. Diagram Feigenbauma ...................... 90
5.3. Ćwiczenia ......................................................................................................... 101
4
Tworzenie aplikacji dla Windows. Od prostych programów do gier komputerowych
Rozdział 6. Obiekty sterujące w oknie ............................................................ 103
6.1. Obiekt klasy BUTTON .................................................................................... 103
6.2. Obsługa grafiki za pomocą obiektów klasy BUTTON ..................................... 109
6.3. Obiekt klasy edycji. Automaty komórkowe ..................................................... 116
6.4. Ćwiczenia ......................................................................................................... 128
Rozdział 7. Menu i plik zasobów ..................................................................... 131
7.1. Dodanie menu do okna ..................................................................................... 131
7.2. Obsługa bitmapy z pliku zasobów .................................................................... 138
7.3. Odczytywanie danych z pliku. Edytor bitmap .................................................. 143
7.4. Kopiarka wielokrotnie redukująca ................................................................... 154
7.5. Ćwiczenia ......................................................................................................... 169
Podsumowanie części I ................................................................................................. 169
Część II Dla średniozaawansowanych ....................................... 171
Rozdział 8. Projektowanie aplikacji wielowątkowych ....................................... 173
8.1. Tworzenie wątków za pomocą funkcji CreateThread ...................................... 173
8.2. Czy praca z wątkami przyspiesza działanie aplikacji?
Sekcja krytyczna i priorytety wątków .............................................................. 178
8.3. Wstrzymywanie pracy i usuwanie wątków ...................................................... 190
8.4. Ćwiczenia ......................................................................................................... 199
Rozdział 9. Definiowanie bibliotek .................................................................. 201
9.1. Biblioteki statyczne .......................................................................................... 201
9.2. Biblioteki dynamiczne — podejście strukturalne ............................................. 207
9.3. Biblioteki dynamiczne — podejście obiektowe ............................................... 220
9.4. Własny temat okna ........................................................................................... 225
9.5. Ćwiczenia ......................................................................................................... 254
Rozdział 10. Multimedia .................................................................................. 255
10.1. Odtwarzanie plików wav — funkcja sndPlaySound ........................................ 255
10.2. Odtwarzanie plików mp3 — biblioteka FMOD ............................................... 258
10.3. Ćwiczenia ......................................................................................................... 269
Podsumowanie części II ............................................................................................... 270
Część III Dla zaawansowanych .................................................. 273
Rozdział 11. Programowanie gier z użyciem biblioteki OpenGL .......................... 275
11.1. Podstawyobsługi biblioteki OpenGL .............................................................. 275
11.2. PrymitywyOpenGL......................................................................................... 284
11.3. Buforgłębokości, perspektywa
— wzorzec kodu do programowania gier (pierwsze starcie) ............................ 298
11.4. Animacja .......................................................................................................... 309
11.5. Poruszaniesię po scenie, funkcja gluLookAt
i wzorzec kodu do programowania gier (starcie drugie, decydujące) ............... 320
11.6. Teksturyi mipmapy ......................................................................................... 334
11.7. Listywyświetlania i optymalizacja kodu ......................................................... 349
11.8. Detekcja kolizji ................................................................................................ 361
11.9. Światło, mgła, przezroczystość i inne efekty specjalne ....................................... 368
Uruchamianie gry w trybie pełnoekranowym .................................................. 368
Mgła ................................................................................................................. 371
Przezroczystość ................................................................................................ 374
Światło ............................................................................................................. 384
Spis treści
5
11.10. Jak ustawić stałą prędkość działania programu? .............................................. 390
11.11. Gotowe obiekty OpenGL ................................................................................. 398
11.12. Fonty ................................................................................................................ 406
11.13. Dźwięk na scenie ............................................................................................. 416
11.14. Budujemy grę! ................................................................................................. 419
Wprowadzenie i charakter gry ......................................................................... 419
Dane gracza ...................................................................................................... 420
Strzał z broni .................................................................................................... 423
Pozostali bohaterowie gry ................................................................................ 425
Odnawianie zasobów gracza ............................................................................ 428
Zakończenie programu (gry) ............................................................................ 430
Podsumowanie części III .............................................................................................. 433
Dodatki ..................................................................................... 435
Dodatek A ................................................................................... 437
Dodatek B ................................................................................... 439
Skorowidz .................................................................................... 441
Rozdzia 8. Projektowanie aplikacji wielow"tkowych
173
Rozdzia% 8.
Projektowanie aplikacji
wielow)tkowych
8.1. Tworzenie w)tków za pomoc)
funkcji CreateThread
Jeste my przyzwyczajeni do tego, "e w systemie Windows mo"emy pracowa# na wielu
oknach jednocze nie. Jak du"e jest to udogodnienie, nie trzeba nikogo przekonywa#.
T% cech% systemu nazywamy wielozadaniowo ci&. Jej najpo"yteczniejszym zastosowa-
niem jest mo"liwo # ukrycia przed pracodawc& pod stosem otwartych okien jednego
okienka z uruchomion& ulubion& gr&. System Windows pozwala tak"e na co wi%cej —
na wielow&tkowo #, czyli wykonywanie wielu zada( równocze nie w ramach dzia)ania
jednego programu. Oczywi cie, poj%cia pracy równoczesnej nie nale"y traktowa# zbyt
dos)ownie. System dzieli czas pracy procesora i przyznaje po kolei pewn& jego cz% #
w celu obs)ugi kolejnego w&tku. Poniewa" wspomniany proces wykonywany jest bardzo
szybko, powstaje iluzja równoleg)ego dzia)ania w&tków.
W&tek tworzymy za pomoc& funkcji CreateThread o nast%puj&cej sk)adni:
HANDLE CreateThread(LPSECURITY_ATTRIBUTES atrybuty_watku,
DWORD rozmiar_stosu,
LPTHREAD_START_ROUTINE adres_funkcji_watku,
LPVOID parametr,
DWORD flaga_watku,
LPDWORD identyfikator
);
Pierwszy argument atrybuty_watku mia) zastosowanie w systemie Windows NT. Od tego
czasu nie wykorzystuje si% go i mo"emy w jego miejsce wpisa# NULL . Drugi argument
okre la rozmiar stosu w bajtach. Je"eli nie mamy pomys)u dotycz&cego jego wielko ci,
wpiszmy zero, co oznacza zadeklarowanie stosu standardowego rozmiaru. W parametrze
319800035.003.png
Zgłoś jeśli naruszono regulamin