Ver. 1.0 Beta, Don't have a compiler? Now you can write simple scripts ONLINE! This is a basic version -does not include all the Pascal statements. Only to learn basics

Jak tworzyć gry w Turbo Pascalu. Przykłady: Mario Bros, Saper, Dżdżowniczka

Pascal

Back to previous articleprevious Muzyka i dźwięk w Turbo Pascalu
Go to main menuup Zaawansowany kurs pascala
Next articlenext Obsługa klawiatury w Turbo Pascalu

Jak tworzyć gry w Turbo Pascalu. Przykłady: Mario Bros, Saper, Dżdżowniczka
Tworzenie gier w Turbo Pascalu

Wstęp


Tworzenie gier w praktyce -kody źródłowe

menu Saper
menu Snake
menu Mario Bros


   Tworzenie gier to umiejętne połączenie grafiki, muzyki i sprawnego programu. Programowanie gier jest bardzo wciągające i ciekawe, wymaga też dużej wytrwałości. Ten rozdział omówi kilka praktycznych rad w jaki sposób tworzyć gry komputerowe.
   Zasady programowania są praktycznie takie same w każdym języku, dlatego poznając techniki programowania w pascalu, będziesz umiał zastosować je w innych językach.

Co potrzebne


   Potrzebna jest dobra znajomość zasad programowania, bez tych umiejętności zakończysz pojekt przy pierwszym poważniejszym napotkanym problemie. Równie ważną cechą jest wytrwałość. Często zdarza się, że programista tworzy tysiące pomysłów, zaczyna od intra, tworzy pierwsze szczegóły gry... program osiąga ponad tysiąc linii, zaczynają się schody i pomysł upada (sam mam takich projektów ponad 20). Tworząc grę nastaw się na raczej ciężką, matematyczną pracę, niż rysowanie plansz, ustawianie przeszkód, itp...
   Przyda się Tobie też dobry grafik, bo zazwyczaj dobry programista jest kiepskim grafikiem. Poza tym na stworzenie lepszej gry nie wystarczy tydzień. Często zajmuje to minimum miesiąc.

Czego się nauczyć


   Gra związana jest ściśle z grafiką, potrzebna jest więc znajomość obsługi szybkiej grafiki. Polecam zapoznać się ze standardem VESA. By przyśpieszyć grafikę -bo są to najbardziej czasochłonne operacje musisz znać podstawy asemblera. Do tego pisanie programów w pascalu, korzystanie z modułów (dzięki nim unikniesz kilku tysięcy linijek kodu), pisanie własnych funkcji, wszelkie rodzaje pętli, typy (byładnie pogrupować elementy), wskaźniki (bez nich też się da ale to utrudni programowanie)

Schemat każdej gry


   Wszystkie gry działają na tej samej bazie. Ogólna struktura to:

INICJALIZACJA - wczytywanie danych, tworzenie planszy w pamięci, ustawianie parametrów

PĘTLA GŁÓWNA - to co w środku pętli jest wykonywane nieustannie. Składa się z kilku części:
 WCZYTANIE DANYCH WCIŚNIĘTYCH KLAWISZY
 OBLICZANIE POZYCJI LUDZIKÓW
 CZYSZCZENIE BUFORA EKRANU
 RYSOWANIE PLANSZY W PAMIĘCI - NIE NA EKRANIE
 RYSOWANIE LUDZIKÓW W PAMIĘCI
 RYSOWANIE EFEKTÓW SPECJALNYCH (wybuchy, itp.) W PAMIĘCI
 OCZEKIWANIE NA POWRÓT PIONOWY MONITORA
 PRZERYSOWANIE BUFORA PAMIĘCI NA EKRAN

ZWOLNIENIE PAMIĘCI - zwolnienie bitmap z pamięci

i to wszystko. Każdy z tych punktów wymaga dobrego zaprojektowania, ale na ogół kod źródłowy głównego programu wygląda tak:

Init;
Start_Game;
Free_Memowy;

Zanim zaczniesz pisać grę weź kartkę papieru i spróbuj wszystko dokładnie zaprojektować. Napisz co się będzie działo, jakich elementów potrzebujesz.

Jak zbudowana jest plansza?


   Może zastanawiałeś się jak budowana jest ogólna struktura planszy. Jest na to kilka sposobów.

1 - Struktura kostkowa - plansza podzielona jest na kwadraciki, w których w każdym rysujesz jakiś element. Np. w mario bros cegłówkę, w strategii kawałek ziemi, itp... Wtedy potrzebujesz dużej tablicy w której komórki będą zawierały liczbę -jaki element się akurat tu znajduje.

2 - Struktura bitmapowa - Wczytujesz bitmapę i sprawdzasz np. po kolorach lub w grafice wektorowej, gdzie ludzik może chodzić. Np. czarny kolor może chodzić lub jeździć samochodem, inny nie

3 - Grafika wektorowa - Tworzysz w pamięci strukturę i na jej bazie sprawdzasz gdzie powinna być ziemia, gdzie niebo, gdzie wolno chodzić, gdzie nie.

4 - Gra napisowa - Prosta wersja, w grafice statycznej. Można wyświetlać bitmapy, na nich napisy, nie potrzebne jest ciągłe rysowanie  planszy

ON-LINE scripts!

This website uses cookie files in order to provide Google services (advertisements, analitycs) and Facebook. If you want to block using cookies, turn them off in your browser settings. Need a help? Click me