Projekt: tworzymy własną grę w (6)-1: przygotowanie obszaru gry.

Pierwsza część projektu      Poprzednia część projektu

Tym razem artykuł zabrał mi ciut więcej czasu… po pierwsze święta, ale przede wszystkim dość przełomowy moment, podczas którego trzeba by omówić bardzo dużo kodu, za dużo jak na jeden wpis. Tak więc po raz pierwszy dzielę jeden wpis na dwie dość nierozerwalne części i umieszczę je w odstępie tylko kilku dni od siebie. Dzisiaj pozmieniamy to i owo w klasach, i przedstawimy reguły gry obowiązujące w pierwszej, uproszczonej wersji. Niestety w brew obietnicą z poprzedniego wpisu, poruszanie się wprowadzimy dopiero w drugiej części tego artykułu.

Przygotowanie obszaru gry.

Najpierw dodamy nowe metody do klasy player. Nie są one konieczne, ale bardzo uproszczą kod zarówno teraz, jak i później, podczas dodawania „eventów” do gry. Nowe metody to bardzo proste odmiany seterów, jednak nie ustawiają one nową wartość zmiennej, a ją modyfikują:

We właściwym kodzie obie metody zostaną zapisane w jednej linijce, co prawda przy obecnych kompilatorach nie ma to większego znaczenia, ale wizualnie będzie wyglądać znacznie ładniej.

Teraz informacja o celu gry. Jest wyświetlana tylko raz, na samym początku rozgrywki i jeśli gracz, mimo ostrzeżenia nie zapamięta opisu wyjścia, będzie się poruszać po świecie gry zupełnie po omacku.

Zaraz po opisie, w tej samej funkcji wprowadzam  zmiany podczas wejścia na obszar, oraz to tutaj, w następnym artykule dopisze wszystkie pozostałe wywołania funkcji w grze. Dodaje też metodę:  void Player::change_addOne_PlayerRounds() { playerRounds++; }Jak wynika z kodu, jest to metoda klasy Player (i tam ją też zapisuje). Na końcu pojawia się górny „pasek statusu” gry, na którym wyświetlane są najważniejsze parametry gracza.

Przy okazji znalazłem błąd w pliku player.cpp: w konstruktorze były ustawione w 2 ostatnich linijkach do zapisu komórki tablicy 4,5 zamiast 6,7, co powodowało wyjście poza zakres w aktualnie pisanym kodzie i błąd dopiero podczas wykonywania programu. 

Na koniec najdłuższa funkcja całej gry: wyświetlanie opisu aktualnego obszaru gry. Pierwsza część opisowa nie wymaga większego wyjaśnienia. Część „graficzna” przedstawia szkic pola gry z ukazaniem tego, które drzwi są otwarte, a które zamknięte. Osoby chętne, mogą wprowadzić trzeci poziom trudności, w którym opis graficzny nie będzie wyświetlany (to 2-3 linijek kodu więcej). Na sam koniec, kilka linijek opisu wpływu pomieszczenia na gracza. 

Link do funkcji opisującej obszar.

 

Proszę pamiętać, że przez samą zmianę treści napisów, można bardzo poważnie zmienić klimat gry. Ja koncentruje się na bardzo sterylnych i krótkich opisach, jednak nic nie stoi na przeszkodzie, aby to zmienić samemu. Można też w ramach wprawy tworzyć grę np. po angielsku.

Wyjątkowo w tym odcinku nie podaje linka do GitHuba z kodem końcowym, dopiero w następnym odcinku umieszczę tam kod wstępnie grywalnej gry (alfa 1). Jednocześnie zachęcam do samodzielnego eksperymentowania i połączenia podanych dzisiaj fragmentów kodu w całość.

Zapraszam do następnej części projektu już wkrótce.

Jedna myśl na temat “Projekt: tworzymy własną grę w (6)-1: przygotowanie obszaru gry.

    Dodaj komentarz