Piotr Besta tworzenie-gier-2d-i-3d-w-jezyku-turbo-pascal full scan.pdf

(8594 KB) Pobierz
887618624.011.png
4
Tworzenie gier 2D i 3D w jzyku Turbo Pascal
Liczby ze znakiem.............................................................................................................94
Kopiowanie fragmentów pami*ci .....................................................................................95
Wypełnianie fragmentów pami*ci ....................................................................................99
Przerwania sprz*towe i programowe ..............................................................................100
Porty ................................................................................................................................105
Podsumowanie ................................................................................................................106
Rozdział 4. Nowe -wiaty..................................................................................107
Jak działaj; gry? ..............................................................................................................107
Jak powstaje obraz?.........................................................................................................111
Tryb 13h ..........................................................................................................................114
Kolory..............................................................................................................................115
Ustawianie trybu graficznego 13h...................................................................................119
Piksele .............................................................................................................................121
Linie poziome..................................................................................................................128
Linie pionowe..................................................................................................................132
Wypełnianie ekranu jednym kolorem .............................................................................136
Programowanie palety kolorów ......................................................................................138
Rotacja kolorów ..............................................................................................................144
Obcinanie palety kolorów ...............................................................................................147
Kraw*d> ekranu...............................................................................................................148
Magazynowanie procedur i funkcji.................................................................................150
Podsumowanie ................................................................................................................159
Rozdział 5. Obrazy...........................................................................................161
Przetwarzanie plików ......................................................................................................161
Format BMP....................................................................................................................165
Odczytywanie obrazu z pliku BMP ................................................................................168
Dynamiczne przydzielanie pami*ci ................................................................................173
Zorganizowane odczytywanie obrazów ..........................................................................177
Uaktualnienie modułu GRAF_FX ..................................................................................181
Szybkie ładowanie palety kolorów .................................................................................186
Zorganizowane wywietlanie obrazów ...........................................................................187
Przezroczyste kolory .......................................................................................................193
Bitmapy o jednakowej palecie kolorów ..........................................................................198
Skalowanie bitmap ..........................................................................................................200
Ostatnia tajemnica stosu..................................................................................................204
Podsumowanie ................................................................................................................205
Rozdział 6. Komunikacja z graczem i wy)wietlanie tekstu.................................207
Klawiatura .......................................................................................................................207
Mysz ................................................................................................................................214
Wywietlanie tekstu ........................................................................................................217
Podsumowanie ................................................................................................................223
Rozdział 7. Animacja .......................................................................................225
Prosta animacja ...............................................................................................................225
Drugi bufor wideo i likwidacja mrugania ekranu ...........................................................229
Animacja wielu obiektów................................................................................................237
Animacja mapy ...............................................................................................................243
Podsumowanie ................................................................................................................250
Spis treci
5
Rozdział 8. Efekty specjalne i d3wik ...............................................................251
Wygaszanie ekranu .........................................................................................................251
Rozjanianie ekranu ........................................................................................................254
Topnienie ekranu.............................................................................................................256
Zalewanie ekranu ciecz; .................................................................................................257
D>wi*k ............................................................................................................................259
DMA — cichy transfer danych .......................................................................................262
Port 008h — port stanu .............................................................................................264
Port 00Ah — port maski kanału ...............................................................................265
Port 00Bh — port trybu ............................................................................................265
Port 00Ch — port przerzutnika.................................................................................266
Format WAV...................................................................................................................267
Karta Sound Blaster ........................................................................................................269
Podsumowanie ................................................................................................................279
Rozdział 9. Grafika 3D.....................................................................................281
Trójwymiarowy układ współrz*dnych............................................................................281
Wektory...........................................................................................................................282
Punkt .........................................................................................................................282
Oznaczanie i rozmiar wektorów ...............................................................................283
Wzajemne poło8enie dwóch wektorów ....................................................................284
Długo5 wektora .......................................................................................................284
Dodawanie wektorów ...............................................................................................285
Odejmowanie wektorów ...........................................................................................285
Mno8enie wektora przez liczb* rzeczywist;.............................................................286
Iloczyn skalarny wektorów .......................................................................................287
Wektorowe mno8enie wektorów ..............................................................................288
Funkcje trygonometryczne sinus i cosinus......................................................................289
Nowe typy danych...........................................................................................................291
Transformacje 3D............................................................................................................294
Obrót wokół osi Y.....................................................................................................294
Obrót wokół osi Z .....................................................................................................296
Obrót wokół osi X.....................................................................................................298
Przesuni*cie ..............................................................................................................299
Skalowanie................................................................................................................301
Problemy z transformacjami .....................................................................................302
Tworzenie obrazu............................................................................................................302
Kamera......................................................................................................................304
Płaszczyzna obcinania ..............................................................................................304
Skrót perspektywiczny..............................................................................................306
Rzutowanie punktu na płaszczyzn* rzutowania .......................................................307
Usuwanie niewidocznych powierzchni.....................................................................311
Metody wywietlania obiektów 3D.................................................................................315
Metoda punktowa............................................................................................................315
Metoda siatkowa (druciana) ............................................................................................326
Metoda jednokolorowych wypełnionych trójk;tów i trójk;tów cieniowanych płasko......345
Trójk;ty z tekstur;...........................................................................................................368
Korekcja perspektywy.....................................................................................................390
Podsumowanie ................................................................................................................409
Dodatek A ........................................................................................................411
Rozdział 6.
W tym rozdziale omówimy dwa sposoby komunikowania si gier z graczem. Pierwszy
sposób dotyczy bdzie klawiatury; poznamy jej działanie, nauczymy si odczytywa
informacj mówi!c! o tym, który klawisz jest wciskany, a który zwalniany, w ko"cu
napiszemy przykładowy program obsługuj!cy klawiatur.
Drugi rodzaj komunikacji zwi!zany bdzie z mysz!; nauczymy si wy$wietla kursor
myszy, odczytywa jego poło%enie i pobiera informacje o stanie przycisków myszy.
Paragraf po$wicony myszy równie% zako"czymy demonstracyjnym programem, w któ-
rym wykorzystamy zdobyt! wiedz w praktyczny sposób.
Osobn! cz$ rozdziału stanowi podrozdział po$wicony technikom wy$wietlania
tekstu w trybie 13h. Stworzymy własn! czcionk i nauczymy si j! stosowa. Na koniec
napiszemy wygodn! procedur wypisuj!c! tekst, podobn! troch do procedury .
Bierzmy si do pracy!
Klawiatura
Klawiatura jest zaraz obok myszy jednym z najintensywniej wykorzystywanych urz!-
dze" doł!czonych do komputera. Korzystamy z niej podczas tworzenia programów,
prac domowych, $ci!g i wielu innych tekstów. Nas jednak interesuje wył!cznie jej zasto-
sowanie w grach komputerowych. Rysunek. 6.1 przedstawia standardow! klawiatur.
Rysunek 6.1.
Standardowa
klawiatura
887618624.012.png 887618624.013.png
208
Tworzenie gier 2D i 3D w jzyku Turbo Pascal
Jako programi$ci gier chcemy mie mo%liwo$ sprawdzenia, czy dany klawisz jest
naci$nity, nie naci$nity czy mo%e przytrzymany.
Zacznijmy od zrozumienia sposobu działania klawiatury. Z klawiatur! poł!czony jest tzw.
kontroler klawiatury (dokładniej jeden z układów scalonych: 8042, 8741 lub 8742).
Mo%emy odnosi si do niego za pomoc! dwóch portów: portu wyj$ciowego — 60h
i portu steruj!cego — 64h. S! to porty dwukierunkowe, co oznacza, %e mo%emy zarówno
odczytywa z nich dane, jak i je do nich zapisywa. Odczytuj!c warto$ z portu 64h,
otrzymujemy troch informacji o stanie klawiatury.
Oto opis bajtu pobranego z portu 64h.
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
bit 7 — bł!d parzysto$ci (wył!cznie w modelach PS/2):
1 = ostatni kod przesłano z błdem,
0 = ostatni kod przesłano bez błdu;
bit 6 — czas oczekiwania na nadesłanie danych:
1 = przekroczony,
0 = w normie;
bit 5 — stan portu wyj$ciowego klawiatury:
1 = port zawiera dane od jednostki dodatkowej (wył!cznie w PS/2),
0 = port zawiera dane od klawiatury;
bit 4 — stan blokady klawiatury:
1 = klawiatura odblokowana,
0 = klawiatura zablokowana;
bit 3 — zawarto$ przesyłanego bajtu:
1 = bajt rozkazowy wysłany przez port 64h,
0 = bajt danych wysłany przez port 60h;
bit 2 — wynik przeprowadzenia autotestu klawiatury:
1 = test przebiegł bezbłdnie,
0 = bł!d;
bit 1 — stan portu 60h (zapis):
1 = dane przesyłane przez procesor znajduj! si jeszcze w porcie,
0 = port 60h jest pusty;
887618624.014.png 887618624.001.png 887618624.002.png 887618624.003.png 887618624.004.png 887618624.005.png 887618624.006.png 887618624.007.png 887618624.008.png 887618624.009.png 887618624.010.png
 
Zgłoś jeśli naruszono regulamin