Jak wspominałem w ostatnim wpisie, dziś zajmiemy się, zmianą grafiki strzału. Jednak, aby wpis nie był przy krótki, zmodyfikujemy kod odpowiedzialny za wyświetlanie, naszej bazy oraz prezentów rozsypanych na mapie. Dzięki tej zmianie, nasza gra będzie wyglądać zdecydowanie lepiej. Dotychczas te elementy gry, prezentowane były podczas rozgrywki jako kolorowe kwadraty. Teraz zostaną zastąpione przez grafiki.
Tekstury
Strzał
Zdecydowanie lepiej prezentuje się ten czerwony punkcik, niż poprzednia grafika. Musimy jednak pamiętać, że przy wyświetlaniu tej tekstury, ma być ona, zarówno strzałem bohatera jak i przeciwników.
Baza
Skorzystamy kolejny raz z grafik przygotowanych przez Kenney.nl. Od teraz nasza baza będzie przedstawiona jako daszek budynku, który ma być osłaniany przez gracza.
Prezent
To grafika przygotowana przeze mnie. Nie wymagała, zbyt wielu umiejętności, a na pewno lepiej się prezentuje, niż fioletowy kwadrat.
Kodujemy
W tym wpisie wszystkie dodane grafiki, będą wyświetlane w ten sam sposób. Dlatego pierwszym razem dokładnie opiszę, a później będę się odnosił do wcześniej dodanego elementu.
Strzały
Aby uprościć zrozumienie wprowadzanych zmian podaje link do wpisu, w którym pomawiałem mechanizm strzałów, zaimplementowany w naszej grze wpis – „Strzelaj” – powiedział dowódca.
Na dobry początek musimy w naszej klasie Game.java dodać nowe pole, które będzie odpowiedzialne za ładowanie naszej nowej grafiki.
private Texture textureShoot;
Następnym naszym krokiem, będzie inicjalizacja zmiennej, czyli załadowanie grafiki do nowododanego pola.
textureShoot = new Texture("shoot.png");
Teraz pozostaje podmienić grafikę, jaka ma być wyświetlana dla każdego strzału dodanego do naszej listy. Nie zapominając, że mamy dwie listy, jedna zawiera strzały bohatera, natomiast druga strzały wrogów.
Poprzedni kod odpowiedzialny za wyświetlanie strzałów bohatera
for (Shoot s : strzaly) { batch.draw(textureShoot, s.x, s.y); }
Obecny kod
for (Shoot s : strzaly) { batch.draw(s.getTexture(), s.x, s.y); }
Poprzedni kod odpowiedzialny za wyświetlanie strzałów wrogich jednostek
for (Shoot s : strzalyPotworow) { batch.draw(textureShoot, s.x, s.y); }
Obecny kod
for (Shoot s : strzalyPotworow) { batch.draw(s.getTexture(), s.x, s.y); }
Baza
Przechodzimy do klasy Baza.java, gdzie będziemy wprowadzać wszystkie zmiany. Dla ułatwienia zrozumienia co się tu za chwilę wydarzy, podaję link do wpisu, gdzie tworzyliśmy kod naszej bazy wpis – Baza – Odbiór.
Pierwszym naszym krokiem będzie pozbycie się zmiennej pixmap i wszystkich odwołań i metod z nią związanych.
Teraz przy inicjalizacji zmiennej texture, zamieniamy parametr, z wcześniej usuniętej zmiennej pixmap na „baza.png”. Taka niewielka zmiana umożliwiła nam, wyświetlanie ładnie prezentującej się tekstury naszej bazy.
Prezent
Przyszedł czas na ostatnią podmianę grafiki w tym wpisie. Teraz na warsztat bierzemy nasze prezenty, pojawiające się w losowych miejscach na mapie. Również, podaje link do wcześniejszego wpisu, który ułatwi zrozumienie wprowadzanych zmian wpis – System prezentów.
Przechodząc teraz do klasy Gift.java, ponownie usuwamy zmienną pixmap, dokładnie tak samo jak w przypadku bazy, a teksturę inicjalizujemy, poprzez zmianę parametru na „gift.png”.
Efekt działania
Podsumowanie
W tym wpisie dodaliśmy trzy nowe tekstury, które poprawiają wizualną stronę naszej gry. Od teraz strzały nie są już czerwonymi kwadratami, podobnie ma się sprawa z fioletowymi prezentami, prezentowane są za pomocą ładnych tekstur. Baza natomiast przestała być zielonym prostokątem i stała się pięknym dachem widzianym z lotu ptaka. W kolejnych wpisach dokonamy kolejnych zmian, które będą nas przybliżać do udostępnienia kolejnej wersji gry.
Pozdrawiam,
sirmarbug