Paweł Pięciak
PROGRAMOWANIE GIER

Manufacturer Pięciak Paweł

Czy miałeś kiedykolwiek wrażenie grając w gry komputerowe, że gdybyś tylko potrafił stworzyłbyś o wiele atrakcyjniejsze i po prostu lepsze gry?
Jeśli tak, to ta książka jest dla Ciebie!
Sales price 29,90 zł
Sales price without tax 28,48 zł
Discount

Preloader

Czy miałeś kiedykolwiek wrażenie, grając w gry komputerowe, że gdybyś potrafił, stworzyłbyś o wiele atrakcyjniejsze i po prostu lepsze gry? Masz wiele ciekawych pomysłów, wydaje ci się, że mógłbyś w istniejacych grach sporo udoskonalić, poprawić lub zrobić coś zupełnie nowego, oryginalnego, odkrywczego i przełomowego, ale nie bardzo wiesz jak? Brakuje ci podstawowej wiedzy i praktycznych ćwiczeń? Jeśli tak, to ta książka jest właśnie dla ciebie!
Programowanie gier wprowadza krok pomkroku do programowania w języku Visual Basic. Autor wyjaśnia zagadnienia dotyczące grafiki, animacji, dzwięku, obsługi klawiatury, myszki, sztucznej inteligencji i wszystkiego, co jest potrzebne do stworzenia sprawnie funkcjonujacej aplikacji i jej instalatora. Dołączona do ksiązki płyta CD zawiera przykładowe gry, dodatki do nich oraz programy narzędziowe pomocne przy tworzeniu nowych programów. Znajdziesz tu opis środowiska kompilatora MS Visual Basic 6.0, wprowadzenie do programowania w tym języku, a przede wszystkim praktyczne wskazówki, jak skutecznie programować, tworzyć grafikę, animację i dźwięk, oraz ćwiczenia w pisaniu gier (wraz z ich instalatorami) o zróżnicowanym poziomie zaawansowania. Książka zawiera również bardzo przydatny opis najczęściej występujących błędów kompilatora języka Visual Basic.
Wymagania sprzętowe do programów na załączonej płycie CD:
* system MS Windows 95/98/XP
* kompilator języka Visual Basic 5.0/6.0
Książka zalecana dla początkujących oraz średnio zaawansowanych.
Tytuł wydany wspólnie z wydawnictwem Zysk i S-ka z Poznania.
Rok wydania: 2004


ISBN 83-89529-01-7
format B5, oprawa miękka, foliowana, ss.204

SPIS TREŚCI
WSTĘP 11
Część I - podstawy języka Visual Basic® 13
Zasady pisania gier 15
Pomysł na grę 15
Podstawowe pojęcia 16
Nazwy plików 16
Spacje i wcięcia 17
Komentarze 17
Testowanie gier 18
Okno formy 18
Co to takiego? 18
Nazewnictwo 19
Ustawienia 19
Zmiana właściwości okna formy w kodzie 21
Kontrolki 21
Co to takiego? 21
Typy 21
Nazewnictwo 22
Kontrolka typu „Image” 22
Kontrolka typu „Picture Box” 22
Kontrolka typu „Label” 23
Kontrolka typu „Text Box” 23
Kontrolka typu „Command Button” 23
Kontrolka typu „Timer” 24
Kontrolki typu „Shape” i „Line” 24
Kontrolka typu „DirListBox” 24
Kontrolka typu „FileListBox” 24
Kontrolka typu „DriveListBox” 24
Zmiana właściwości kontrolek w kodzie 25
Zdarzenia dla okna formy i kontrolek 25
Co to takiego? 25
Gdzie to jest? 25
Zdarzenie typu „Activate” 26
Zdarzenie typu „Deactivate” 26
Zdarzenie typu „Load” 26
Zdarzenie typu „Unload” 27
Zdarzenie typu „Click” 27
Zdarzenie typu „DblClick” 28
Zdarzenie typu „Change” 28
Zdarzenie typu „KeyPress” 29
Zdarzenie typu „KeyUp” 29
Zdarzenie typu „KeyDown” 30
Zdarzenie typu „MouseUp” 30
Zdarzenie typu „MouseDown” 30
Zdarzenie typu „MouseMove” 31
Metody dla okna formy i kontrolek 31
Co to takiego? 31
Metoda typu „Circle” 31
Metoda typu „Line” 33
Metoda typu „Cls” 34
Metody typu „Show” i „Hide” 34
Metoda typu „Move” 35
Metody typu „Point” i „PSet” 36
Metoda typu „PrintForm” 37
Metoda typu „Print” 37
Metoda typu „Refresh” 38
Metoda typu „SetFocus” 38
Metody typu „TextWidth” i „TextHeight” 38
Zmienne i stałe 39
Co to takiego? 39
Nazewnictwo 39
Typy i deklarowanie 39
Typy zdefiniowane 42
Zmienne tablicowe 43
Instrukcja przypisania 44
Operatory arytmetyczne 44
Prosty program obliczający (przykład) 45
Instrukcje 48
Co to takiego? 48
Instrukcja „With” 48
Operatory logiczne 48
Instrukcja warunkowa „If…Then” 50
Instrukcja wyboru „Case” 51
Instrukcja powtarzania „For…Next” 52
Instrukcja powtarzania „Do…Loop” 53
Instrukcja powtarzania „While…Wend” 54
Procedury i funkcje 54
Co to takiego? 54
Deklarowanie zmiennych i stałych 54
Procedura 55
Funkcja 57
Deklarowanie procedur i funkcji z bibliotek DLL 58
Obsługa klawiatury 59
Kody klawiszy 59
Zdarzenie „KeyPress” 60
Zdarzenia „KeyUp” i „KeyDown” 61
Obsługa klawiszy w grach 62
Obsługa myszy 62
Kody przycisków 62
Zdarzenie „MouseMove” 62
Zdarzenia „MouseUp” i „MouseDown” 62
Obsługa myszy w grach 62
Obsługa plików 63
Po co to? 63
Tworzenie i zapis 63
Otwieranie i odczyt 66
Inne przydatne funkcje 67
Obiekt „App” 68
Szyfrowanie danych w plikach 68
Przykład podsumowujący 69
Podsumowanie 72
Część II – dźwięk, grafika, animacja oraz A.I. 73
Dźwięk 75
Pliki typu „WAV” i jak je odtworzyć? 75
Nagrywanie własnych efektów dźwiękowych 76
Grafika 76
Pliki typu „BMP” i ich wczytywanie 76
Układ współrzędnych na ekranie 77
Zmiana rozdzielczości ekranu za pomocą funkcji Visual Basica® 77
Wyświetlanie 80
Tło - graficzna podstawa 83
Jak dobrze rysować elementy? 84
Ikony - mała rzecz, a cieszy 84
Animacja 85
Klatki, czyli sekwencje obrazów 85
Jak wyświetlać animację i z jaką prędkością? 85
Składanie różnych efektów z kilku elementów 89
Program tworzący sekwencje 89
Program odtwarzający animacje 90
A.I., czyli sztuczna inteligencja 91
Dlaczego ten komputer jest taki „głupi”? 91
Różny tok „myślenia” komputera dla różnych typów gier 91
Podsumowanie 91
Część III - ćwiczenia w pisaniu gier 93
Nasza pierwsza gra - „Gnop-Gnip” 95
Zanim zaczniemy 95
Ustawiamy nasze okno i kontrolki 95
Stałe i zmienne - tworzymy moduły 96
Grafika i dźwięk 100
Programowanie 100
Finalizujemy projekt 112
Tworzymy instalator za pomocą WinRAR-a® 114
Tworzymy instalator za pomocą „Package & Deployment Wizard” 116
Polska wersja „Package & Deployment Wizard” 119
Możliwe ulepszenia 119
Nasza druga gra - „Catch IT!” 120
Zanim zaczniemy 120
Ustawiamy okno i kontrolki 120
Stałe i zmienne - tworzymy moduły 121
Grafika i dźwięk 123
Programowanie 123
Finalizujemy projekt 134
Możliwe ulepszenia 134
Nasza trzecia gra - „Balony” 135
Zanim zaczniemy 135
Ustawiamy okno i kontrolki 135
Stałe i zmienne - tworzymy moduły 136
Grafika i dźwięk 137
Programowanie 137
Finalizujemy projekt 148
Możliwe ulepszenia 148
Nasza czwarta gra - „Alien assault” 148
Zanim zaczniemy 148
Ustawiamy okno i kontrolki 149
Stałe i zmienne - tworzymy moduły 150
Grafika i dźwięk 153
Programowanie 153
Finalizujemy projekt 185
Możliwe ulepszenia 185
Podsumowanie 186
Część IV - załączniki 187
Załącznik A - opis środowiska Visual Basica 6.0® 189
Uruchamiamy i...? 189
Obszar pracy 190
Menu 190
Pasek przycisków i optymalizacja 190
Menu „File” 191
Menu „Edit” 191
Menu „Project” 192
Menu „Format” 192
Menu „Debug” 193
Menu „Run” 193
Okna 194
Załącznik B - niektóre funkcje i procedury API Windows® 195
„BitBlt” 195
„sndPlaySound” 196
„ShowCursor” 196
„ClipCursorRect” i „ClipCursorClear” 196
„ClientToScreen” 197
„WriteProfileString” i „WritePrivateProfileString” 197
„GetProfileString” i „GetPrivateProfileString” 198
Załącznik C - najczęściej spotykane błędy 200
„Illegal function call” 200
„Overflow” 200
„Out of memory” 200
„Subscript out of range” 200
„Duplicate definition” 201
„Division by zero” 201
„Type mismatch” 201
„Out of string space” 201
„Sub or function not defined” 201
„Error in loading DLL” 202
„Bad DLL calling convention” 202
„Bad file name or number” 202
„File not found” 202
„Bad file mode” 203
„File already open” 203
„Disk full” 203
„Path not found” 203
Załącznik D - instalacja CD-ROM-u 204
Co jest na płycie? 204
Instalacja 204


WSTĘP

Dawno temu, gdy dopiero nabyłem komputer i włączyłem pierwszą grę, zastanawiałem się, jak można by samemu zrobić takową. Nie miałem pojęcia o żadnym języku programowania ani nie mogłem się przyzwyczaić do rysowania myszką. Po kilku miesiącach grania postanowiłem, że choćbym miał skonać, to będę tworzył gry.
Tak to się zaczęło.
Na początku nie uczyłem się żadnego języka programowania, tylko wziąłem się za rysowanie. Moje początkowe rysunki można by określić jednym słowem – tragedia. Cóż, nie poddawałem się. Zacząłem tworzyć coraz ładniejsze rysunki, którymi chwaliłem się kolegom. Moi kumple patrzyli na mnie z niedowierzaniem.
Nie byłem z siebie zadowolony, bo nie umiałem jeszcze programować, a koniecznie chciałem się tego nauczyć. Pierwszym językiem, w jakim zacząłem programować, był Turbo Assembler® firmy Borland®. W assemblerze programowałem dwa lata. Nie pozwoliło mi to jednak opanować go perfekcyjnie, gdyż był językiem trudnym, a brak literatury na ten temat potęgował to zjawisko. Chciałem koniecznie znaleźć język o wiele prostszy i znalazłem go. Turbo Pascal® to właśnie język, którym zająłem się w następnej kolejności.
Literatury dotyczącej tego tematu było sporo. Programowałem w nim kolejne dwa lata. Napisałem kilka prostych gier i programów. Wejście na rynek systemu Windows 95® spowodowało, że od razu chciałem pisać programy dla tego środowiska, dlatego też „przesiadłem” się na Visual Basic®. Właśnie temu językowi programowania poświęcona jest niniejsza książka. Napisałem ją głównie ze względu na to, że coraz więcej osób zbyt późno zaczyna interesować się programowaniem i nie widzi nic poza grami komputerowymi.
Nie chcę przez to powiedzieć, że gry komputerowe są złe i nie powinno się w ogóle z nimi obcować, wręcz przeciwnie, są bardzo dobrą rozrywką, ale trzeba znać umiar i nie poświęcać np. kilku dni na samo granie. Gry są dobrym przerywnikiem, gdy np. długo siedzisz przed monitorem pisząc n-ty program czy też tworząc wspaniały rysunek. Podsumowując, spróbuj sam napisać grę, zobacz, jaką radość może ona sprawić innym... i zapewniam cię, że po przeczytaniu tej książki nauczysz się programować w szybki i przyjemny sposób.
Dodatkowo zagłębisz się w tajniki tworzenia gier, a grafika, animacja czy dźwięk nie będą już nierozumianymi przez ciebie pojęciami.
Visual Basic® to potężne środowisko, które pozwala na tworzenie zaawansowanych programów i gier. Jest językiem wyższego rzędu, co oznacza, że wykonanie jakiegoś polecenia powoduje wykonanie wielu podpoleceń. „Visual” odnosi się do tego, w jaki sposób tworzymy elementy, czyli jak sama nazwa wskazuje – wizualnie. Wstawiamy nasze elementy do okna, a później dopisujemy do nich kod. Druga część nazwy – „Basic” określa rodzaj języka. Jest to skrót od Beginner’s All – Purpose Symbolic Instruction Code.
W naszym ojczystym języku brzmi to mniej więcej tak: „Kod symbolicznych instrukcji do wszelkiego zastosowania dla początkujących”. Visual Basic® świetnie nadaje się do programowania gier. Język ten jest bardzo dobry, jeśli chodzi o pisanie gier w środowisku dwuwymiarowym, jednak dla trójwymiaru jest po prostu zbyt wolny. Nie martw się jednak tym, gdyż gry dwuwymiarowe są nadal pisane, choćby ze względu na niższe wymagania sprzętowe i dużą szczegółowość grafiki. Niech gry dwuwymiarowe będą dla ciebie wstępem dla trudniejszych do napisania gier trójwymiarowych. Od czegoś zawsze trzeba zacząć.
Książka jest podzielona na cztery części, stopniowo zwiększające poziom twoich umiejętności. Musisz jednak obiecać sobie, że nie zajrzysz do następnego rozdziału dopóty, dopóki nie skończysz aktualnego, tylko to pozwoli ci na nauczenie się tego języka w szybki i przyjemny sposób, a zresztą po co się niepotrzebnie stresować? Do książki jest dołączona płytka z programami, które tutaj opracujemy. Sposób jej instalacji znajdziesz w załączniku D. Załącznik C zawiera opisy najczęściej spotykanych błędów, które kompilator wyświetla, gdy coś jest nie tak z naszym programem. Załącznik B to opis niektórych procedur i funkcji API Windows®.
Nie przejmuj się, jeśli nie wiesz, co to takiego, po przeczytaniu tej książki będziesz operował pojęciami, o których jeszcze nigdy nie słyszałeś. Jeżeli jesteś posiadaczem Visual Basic® i jeszcze nie miałeś styczności z jego środowiskiem, to przed przystąpieniem do pracy nad naszymi programami powinieneś KONIECZNIE przeczytać załącznik A.
Zakładam, że posiadasz Visual Basic® w wersji 6.0, system Windows® 98 i kartę graficzną wyświetlającą przynajmniej 16-bitowy kolor.
Wszystkie programy pisane dla systemu Windows® 98 będą działały w nowszych systemach typu 2000, XP itp.
Na co my jeszcze czekamy... zacznijmy wreszcie, a więc do dzieła... aha, jeszcze jedno, nie zakładaj, że przeczytasz tę książkę w dwa dni i pojmiesz wszystko. Rozłóż sobie materiał tak, aby sięgać po tę książkę z przyjemnością, a nie jak po zadaną na dany termin lekturę z języka polskiego. Jeżeli chcesz opanować ten język, musisz dużo ćwiczyć.
Powodzenia!

ZASADY PISANIA GIER

POMYSŁ NA GRĘ

Aby napisać dobrą grę, trzeba mieć bogatą wyobraźnię. Najpierw należy wszystko obmyśleć i napisać prosty algorytm. A co to jest ten algorytm?… Jest to inaczej przepis na działanie programu. Podać przykład? Proszę bardzo, weźmy jakąś czynność z życia, byle tylko nie była zbyt prosta, np. gotowanie jajek. Przepis byłby taki:
* Nalej do garnka wody
* Włóż do garnka z wodą jajka
* Postaw je na ogniu
* Czekaj 7 minut od czasu zagotowania się wody
* Zdejmij je z ognia i ostudź np. w zimnej wodzie
* Obierz jajka ze skorupek
Obmyślanie wiąże się z wysiłkiem umysłowym na wielką skalę, dlatego też nie powinieneś obmyślać wszystkiego od razu. Możesz wymyślać kolejne rzeczy podczas tworzenia początkowych elementów twojej gry. Wszystkie pomysły powinieneś zapisywać na kartce, aby ich nie zapomnieć. Należałoby jeszcze dodać, że aby nasza gra była przemyślaną koncepcją, musimy zrobić szkice wszystkich elementów jej dotyczących.
Jeżeli chodzi o grafikę, to tutaj dopiero trzeba się napocić. Pamiętaj, że gry nie musisz robić sam, możesz poprosić kumpla, aby tworzył ci grafikę, jeżeli umie rysować lepiej od ciebie i ma dobre programy graficzne.
Animacja łączy się przede wszystkim z grafiką. Są różne programy, które w przyjemny sposób uczą zasad animacji, np. „Animator” mojego autorstwa, który posiada funkcje i dosyć obszerną pomoc na ten temat.
Dźwięk, hmmm... też trzeba się narobić i to sporo. Najlepiej, jakbyś miał mikrofon, gdyż wtedy możesz tworzyć własne dźwięki. Niektóre banalne czynności mogą doprowadzić do bardzo ciekawego efektu dźwiękowego, np. przesuwając przedmiot po chropowatej powierzchni możemy uzyskać odgłos karabinu maszynowego.
Jeżeli nie masz mikrofonu, to możesz ściągnąć różne dźwięki z Internetu lub skorzystać z plików dołączonych do innych gier – są to pliki „wav”. Pamiętaj jednak, że dźwięki te posiadają autorów. Jeżeli tworzysz gry na sprzedaż, będziesz musiał zdobyć pozwolenie na ich użycie i tym sposobem odchudzisz trochę swój portfel.
Dużo współczesnych gier ma świetną grafikę, animację oraz dźwięk, ale brakuje im tego czegoś... To coś nazywamy „grywalnością”, chociaż zdarzają się perełki, zawierające świetną grafikę, animację, dźwięk oraz grywalność. Nie chcę przez to powiedzieć, że nie powinniśmy dbać o stronę wizualną gry. Wręcz przeciwnie. Uruchamiając jakąkolwiek produkcję, od razu zwracamy uwagę na grafikę. Z tego powodu należy się postarać, aby nasza gra nie odstraszała.
Najpierw powinieneś stworzyć kilkadziesiąt prostych gier, zanim zajmiesz się poważniejszą produkcją twojego życia. Wiadomo, że nie będzie to gra bijąca na głowę wszystkie hity, ale praktyka czyni mistrza. Im więcej masz ludzi w zespole, tym szybciej twoja gra ujrzy światło dzienne i na tym większą liczbę osób podzielisz zyski, na które na początku zbytnio nie licz. Najważniejsze jest to, aby zaistnieć w tej branży i to powinno być twoim głównym celem.
PODSUMOWANIE
Napisaliśmy wspólnie cztery gry, stopniowo zwiększając poziom trudności i umiejętności programistycznych. Nauczyliśmy się (mam nadzieję J) tworzyć proste gry. Aby w pełni opanować tę sztukę, nie poprzestawaj na tych czterech. Jeżeli ta książka otworzyła ci nowe możliwości, to wykorzystaj je. Cały czas pisz gry. Spróbuj zebrać ekipę, gdzie każdy będzie robił co innego (grafikę, dźwięk, kod itd.). Popróbuj różnych technik. Jeżeli coś nie będzie ci