\n Przejdź do treści

Wróg z obu stron

W przedostatniej części naszego kursu skonfigurujesz działanie samolotów wroga i dodasz potrzebne grafiki. Gra będzie wyglądać już bardzo dobrze na tyle, że będziesz mógł pochwalić się nią wśród znajomych i poprosić o opinię na jej temat.

Tym razem dodasz do swojej gry jeszcze więcej elementów graficznych, a przede wszystkim przygotujesz samoloty wroga. Po ukończeniu lekcji gra Plane Pong będzie już mniej przypominać prototyp, a zbliży się kształtem do w pełni funkcjonalnej gry.

Uruchom program GameSalad Creator, przejdź do zakładki File w lewym górnym rogu i wybierz Open…. Następnie otwórz swój projekt z grą, który zapisałeś w poprzedniej części kursu. Jeżeli nie maszt takiego pliku, załaduj ten, który znajdziesz na naszej płycie DVD w grupie Extra.

Przejdź do zakładki Actors w górnym obszarze Library i wybierz bohatera WrógLewydoPrawej, klikając go lewym przyciskiem WrogLewydoPrawej. Ponieważ w grze istnieją dwa rodzaje wrogów (LewydoPrawej i PrawydoLewej), trzeba stworzyć dla każdego z nich oddzielną właściwość (atrybut), aby można było wpływać na ich działanie w sposób niezależny.

W obszarze <Attributes> bohatera WrógLewydoPrawej kliknij przycisk +, aby dodać nową właściwość typu Integer i nazwij ją JakiSamolot. Zostaw wartość domyślną, czyli 0. Teraz z zakładki Behaviors z obszaru Library przeciągnij do reguł bohatera Wróg LewydoPrawej na samą górę nowe zachowanie o nazwie Change Attribute.

W utworzonym właśnie Change Attribute w sekcji set wybierz <Attribute, WrógLewydoPrawej, JakiSamolot, natomiast w sekcji to wpisz random(1,2) i zatwierdź zmiany. Sprawi to, że kiedy na planszy pojawi się WrógLewydoPrawej, będzie wybierać obrazek 1 albo 2 (losowo), dzięki czemu samolot lecący z lewej do prawej będzie wyglądał jak ten z obrazka 1 albo z obrazka 2.

Dodaj kolejne zachowanie Change Attribute i umieść je zaraz pod tym, które stworzyłeś przed chwilą. Wybierz w sekcji set kolejno Attributes, WrógLewydoPrawej, Image.

W sekcji to wpisz nazwy obrazków tak, jak robiłeś w przypadku cyfr tworzących wynik w ramach poprzedniej części kursu. Obrazki nazywają się EnemyPlane–1 i EnemyPlane–2, dlatego trzeba w polu to wpisać “EnemyPlane–”.. i dodać self.JakiSamolot z listy właściwości na dole. Pamiętaj, aby dodać obrazki do obszaru Library, w zakładce Media – są to obrazki EnemyPlane–1.png i EnemyPlane–2.png.

W kreatorze gier GameSalad bardzo dużo zależy od tego, jakie reguły ustawisz i czego będą one dotyczyć. Zwróć uwagę i postaraj się zapamiętać, że reguły zaczynające się od self dotyczą zawsze tylko jednego obiektu czy bohatera. Z kolei te, które zaczynają się od słowa game, są stosowane do całej gry.

Kolejny krok to stworzenie nowych reguł, dzięki którym samoloty wroga będą poruszać się i wyglądać w odpowiedni sposób. Są to różne samoloty (mają różne wymiary), przez co najpierw trzeba stworzyć regułę, która będzie przypisywać poszczególne wymiary do danego obrazka – jeden do EnemyPlane–1, drugi do EnemyPlane–2.

Aby stworzyć odpowiednią regułę, kliknij przycisk +Rule w prawym rogu sekcji z regułami, następnie nazwij ją Plane–1.

W polu tekstowym wpisz Attribute i wciśnij Enter. Następnie w if wybierz Attributes, WrógLewydoPrawej, JakiSamolot, a w polu obok podaj wartość 1. Ta wartość symbolizuje obrazek EnemyPlane–1.

Do pola do w regule Plane–1 przeciągnij dwa zachowania Change Attribute. W pierwszym ustaw Attributes, WrógLewydoPrawej, Size Width, a w drugim przygotuj taką samą właściwość, ale na końcu wybierz Height. Są to odpowiednio szerokość, której wartość ustaw na poziomie 82, i wysokość, która powinna wynosić 50. Są to wartości dostosowane do obrazka EnemyPlane–1, niemniej musisz pamiętać, że jeśli będziesz tworzyć własną grę i wykorzystasz inne obrazki, wtedy pewnie będziesz potrzebował innych wartości.

Skopiuj całą regułę Plane–1, trzymając wciśnięty klawisz Alt, i umieść ją poniżej. Zmień jej nazwę na Plane–2, a następnie ustaw wartości poszczególnych elementów:
self.JakiSamolot = 2
self.size.widht = 50
self.size.height = 62

Należy jeszcze zmienić ułożenie obrazka, czyli bohatera, aby wyglądało to tak, że samolot faktycznie leci z lewej strony do prawej, czyli jest skierowany dziobem w prawą stronę. Dodaj jeszcze jedno zachowanie Change Attribute i umieść je pod tym, które zawiera ustawienia obrazków (self.image). W sekcji set wybierz Attributes, WrógLewydoPrawej, Rotation. Z kolei w to wpisz wartość 270, aby odpowiednio przekrzywić obrazek.

Zapisz zmiany w projekcie i wciśnij zielony przycisk Play, aby zobaczyć podgląd gry. Zauważysz, że samoloty z lewej do prawej są już poprawnie skonfigurowane i mają dobry wygląd (jeden jest mniejszy, drugi większy). Teraz wprowadzić te same zmiany, ale dla samolotów lecących z lewej – dla bohatera WrógPrawydoLewej.

Wybierz bohatera WrógPrawydoLewej, stwórz nową właściwość (atrybut) Integer i nazwij ją JakiSamolot. Następnie przygotuj te same zachowania i reguły, co dla WrógLewydoPrawej, stosując poniższe wartości i funkcje:

self.JakiSamolot = random(1,2)
self.image = “EnemyPlane–”.. self.JakiSamolot
self.rotation = 90
Reguły Plane–1 i Plane–2 są takie same, jak dla WrógLewydoPrawej, więc wystarczy je stworzyć, wzorując się na bohaterze WrógLewydoPrawej. Kiedy wprowadzisz wszystkie zmiany, zapisz je i włącz podgląd gry. Zobaczysz, że dzięki najnowszym zmianom samoloty wroga działają już poprawnie i mają właściwy wygląd. Twoja gra wygląda coraz lepiej!

Jeśli trochę pograsz na podglądzie, zauważysz, że po rozpoczęciu nowej rundy samolot głównego bohatera jest czasami do góry nogami i lata tyłem. Dzieje się tak, ponieważ czasami, gdy zakończysz rozgrywkę poprzez zderzenie z samolotem wroga, gra uruchamia się od nowa, ale brakuje jej parametrów, które będą powodować ustawienie samolotu we właściwym kierunku.

Aby dodać brakujące parametry, zaznacz bohatera gry Zasady rundy. Zauważ, że Zasady rundy ma np. zachowanie Change Attribute z funkcją game.Wynik = 0, co znaczy, że po wznowieniu gry wynik zawsze zaczyna się od 0 punktów. Teraz trzeba dodać dwa dodatkowe ustawienia domyślne tego rodzaju.

Dodaj zachowanie Change Attribute zaraz pod tym, które zawiera game.Wynik. W polu set wybierz Attributes, Game i Lot samolotu, a w to wpisz wartość 90.

Dodaj jeszcze jeden Change Attribute. W sekcji set wybierz Attributes, Game, Która moneta, a w to wpisz wartość 0. Dzięki temu gra zawsze będzie zaczynać się w taki sposób, że samolot będzie leciał z dołu w górę, a pierwsza moneta do zebrania będzie znajdować się przy górnej chmurze.

Teraz przejdź jeszcze do bohatera Chmury i do zakładki Actor w obszarze Attributes. Rozwiń sekcję Physics. Zaznacz tam pole Fixed Rotaion i odznacz Movable. W ten sposób odpowiednio zablokujesz miejsce chmur i nie pozwolisz, aby się przemieszczały. Dzięki temu Chmury będą mogły zderzać się wyłącznie z samolotem i nie będzie dochodzić do błędów, kiedy samolot przelatuje przez chmurę (mogą one występować losowo i do tej pory mogłeś ich nie zauważyć).

Teraz dodasz grafikę tła do gry – do głównej sceny. Obrazek znajduje się już w zakładce <Media> i ma nazwę PlaneBG.

Przejdź do zakładki Scenes i zaznacz Initial Scene, czyli scenę główną. Następnie z zakładki <Media> przeciągnij tutaj obrazek PlaneBG i odpowiednio dopasuj jego rozmiar, aby zakrywał całą scenę. Następnie kliknij obrazek prawym przyciskiem myszy i wybierz polecenie Send to Back, (wyślij do tyłu), aby obrazek ukrył się pod pozostałymi.

Ustaw odpowiednie wymiary głównego bohatera gry – samolotu. Zaznacz go i przejdź do zakładki Actor w obszarze Attributes. Rozwiń sekcję Size i ustaw szerokość (Width) oraz wysokość (<Height>), wpisując po 56.

Na koniec dodaj grafikę, która posłuży do wyświetlania wyniku. Przeciągnij dwa razy bohatera Score na scenę główną i umieść go w lewym górnym rogu. Dla Score widocznego po lewej ustaw parametr Wynik o wartości 100 – zrobisz to w zakładce Actor w obszarze Attributes. Dzięki temu obrazek z „0” ze Score po lewej zmieni się na „1” dopiero wtedy, gdy wynik przekroczy 100 punktów.

Usuń teraz bohaterów Punkty i Topowy Wynik z głównej planszy, ponieważ już ich nie potrzebujesz. Zapisz zmiany. Włącz grę i zobacz, jak dobrze już wygląda!

0 komentarzy

Zostaw komentarz