tworzenie aplikacji dla windows. od prostych programów do gier komputerowych cała książka.pdf
(
15630 KB
)
Pobierz
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. Podstawy obsługi biblioteki OpenGL .............................................................. 275
11.2. Prymitywy OpenGL ......................................................................................... 284
11.3. Bufor głębokości, perspektywa
— wzorzec kodu do programowania gier (pierwsze starcie) ............................ 298
11.4. Animacja .......................................................................................................... 309
11.5. Poruszanie się po scenie, funkcja gluLookAt
i wzorzec kodu do programowania gier (starcie drugie, decydujące) ............... 320
11.6. Tekstury i mipmapy ......................................................................................... 334
11.7. Listy wyś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
174
Cz#$% II
Dla $redniozaawansowanych
adres_funkcji_watku
powinien znajdowa# si%, zreszt& zgodnie z pomys)owo nadan&
nazw&, adres funkcji, która zawiera kod obs)ugi w&tku. Deklaracja funkcji musi mie#
nast%puj&c& posta#:
DWORD NazwaFunkcji(LPVOID);
Parametr, który mo"emy przekaza# do funkcji w&tku, przekazujemy jako czwarty argu-
ment funkcji
CreateThread
. Argument
flaga_watku
okre la chwil% uruchomienia w&tku.
Mo"emy u"y# jednej z dwóch warto ci:
0
— w&tek uruchamiany jest w chwili utworzenia,
CREATE_SUSPENDED
— uruchomienie w&tku jest wstrzymane a" do wywo)ania
funkcji
ResumeThread
.
Ostatni parametr powinien zawiera# wska*nik do zmiennej, w której zostanie umiesz-
czony identyfikator w&tku. Je"eli uruchomienie w&tku powiedzie si%, funkcja
Create
Thread
zwraca uchwyt utworzonego w&tku, w przeciwnym przypadku zwracana jest
warto #
NULL
.
Wszystko, co w)a nie przeczytali cie, jest niezwykle ciekawe, ale warto ju" przyst&pi#
do budowania programu. B%dzie to aplikacja z dziedziny helmintologii, czyli nauki
o robakach (niestety, paso"ytniczych). Wyobra*my sobie obszar roboczy naszego okna.
Klikni%cie lewego przycisku myszy powinno wywo)a# nowy w&tek — robaka, którego
pocz&tek niszczycielskiej dzia)alno ci b%dzie si% znajdowa) w miejscu, w jakim aktualnie
znajduje si% kursor myszy. Tworzymy nowy projekt Windows o nazwie
Program20.dev
.
Spójrzmy na prosty program realizuj&cy wspomniane zadanie (plik
Program20_main.cpp
),
a nast%pnie omówi% kluczowe punkty programu.
#include <windows.h>
/* Sta,e rozmiaru obszaru roboczego okna */
const
int
MaxX = 640;
const
int
MaxY = 480;
/* Zmienne globalne dla obs,ugi w3tków */
int
x, y;
/* Funkcja w3tku */
DWORD Robak(LPVOID param);
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);
char
szClassName[ ] = "WindowsApp";
int
WINAPI WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int
nFunsterStil)
{
HWND hwnd;
MSG messages;
WNDCLASSEX wincl;
Plik z chomika:
AGAPE_AGAPE
Inne pliki z tego folderu:
autocad 2005 i 2005 pl full.pdf
(22413 KB)
intensywny kurs przywództwa. szybki program rozwoju zdolności przywódczych full.pdf
(9732 KB)
płytki umysł. jak internet wpływa na nasz mózg helion.pdf
(34503 KB)
analiza statystyczna. microsoft excel 2010 pl cała książka.pdf
(27781 KB)
matematyczne-szkielko-i-oko.-mniej-i-bardziej-powazne-zastosowania-matmy full scan.pdf
(28897 KB)
Inne foldery tego chomika:
! # Wrzucone - sprawdzone i pełne Ebooki #
! # Wrzucone - sprawdzone i pełne Ebooki #(1)
! # Wrzucone - sprawdzone i pełne Ebooki #(10)
! # Wrzucone - sprawdzone i pełne Ebooki #(2)
! # Wrzucone - sprawdzone i pełne Ebooki #(3)
Zgłoś jeśli
naruszono regulamin