SoftwarePodstawy logiki

    Podstawy logiki

    W tym odcinku naszego kursu sprawisz, że główny bohater gry będzie mógł zbierać punkty monety. Dodasz też chmury, czyli punkty odpowiedzialne za automatyczną zmianę kierunku lotu.

    Podstawy logiki

    Dzięki poprzedniej części kursu stworzyłeś samolot, czyli podstawowego bohatera gry, i wprawiłeś go w ruch. Samolot nie tylko przemieszcza się wzdłuż osi Y, czyli góra/dół, ale też możesz zmieniać jego kierunek poprzez klikanie myszą. Jeśli zagrałeś w gotowego Plane Ponga (http://gsrca.de/132563), z pewnością zauważyłeś, że samolot zmienia też kierunek za sprawą odbijania się od dwóch chmur – jednej znajdującej się na górze planszy i drugiej umiejscowionej na dole. W tej części kursu wstawisz dwie chmury odpowiedzialne za zmienianie kierunku lotu bohatera gry. Dodatkowo przygotujesz logikę gry związaną z zachowaniem pozostałych bohaterów oraz dowiesz się, jak opracować proces zbierania punktów (monet).

    Tworzenie chmur, od których odbija się samolot

    Jeżeli nie masz zapisanego pliku z efektem pracy, znajdziesz go na płycie DVD dołączonej do tego numeru PC Formatu, podobnie jak PDF z pierwszą częścią kursu.

    Krok 1

    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ą zapisany po ukończeniu poprzedniej części kursu.

    Obraz

    Krok 2

    W zakładce Actors oznaczonej symbolem człowieczka wciśnij przycisk +, aby dodać nowego „bohatera” do gry. Kliknij dwukrotnie nowego bohatera i zmień jego nazwę na nazwę na Chmury.

    Obraz

    Krok 3

    Naciśnij lewym przyciskiem myszy bohatera Chmury i trzymając wciśnięty przycisk, przeciągnij go na scenę gry widoczną obok – na czarną planszę, na której znajduje się już samolot. Chmury nie mają jeszcze wyglądu i na razie będzie to biały kwadrat. Kolejnym krokiem jest umieszczenie chmury nad samolotem w taki sposób, aby lecący w górę samolot mógł się od niej odbić. Umieść więc chmurę w odpowiednim miejscu, a następnie nieco zmień jej rozmiary, korzystając z przycisków do rozciągania widocznych na białym kwadracie. Ostatecznie umieszczona na scenie chmura powinna wyglądać mniej więcej tak:

    Obraz

    Krok 4

    Kliknij i przytrzymaj lewym przyciskiem myszy chmurę, wciśnij na klawiaturze Alt i przenieś chmurę obok – dzięki temu zabiegowi powstanie duplikat chmury. Będziesz mógł go umieścić niżej, na dole planszy. Aby mieć pewność, że chmury zostaną umieszczone równo i nie dopuścić do sytuacji, w której chmura górna będzie np. bardziej przesunięta w lewo niż ta na dole, możesz przy przeciąganiu chmury na dół trzymać wciśnięty klawisz Shift.

    Obraz

    Krok 5

    Teraz możesz jeszcze zmienić wygląd chmur. Kliknij bohatera Chmury i przejdź do zakładki Actor w obszarze Attributes. Przeciągnij obrazek chmury (CloudBounce.png) do pola Drag an Image Here.

    Obraz

    Zmiana kierunku obiektu po uderzeniu w chmurę

    W grze znajduje się główny bohater (samolot), który potrafi zmieniać kierunek, gdy wciśniesz lewy przycisk myszy. Funkcja ta została opracowana w poprzedniej części kursu i występuje jako reguła (Rule). To, co możesz teraz zrobić, to przygotować wyjątek od reguły – sprawisz, że samolot będzie mógł zmieniać kierunek nie tylko wtedy, gdy wciśniesz przycisk, ale też gdy napotka chmurę.

    Krok 1

    Tworząc grę w GameSalad, często możesz dodawać warunki do swoich reguł. Jeśli np. masz już przygotowaną regułę, którą możesz zastosować też do innych elementów gry, wystarczy, że dodasz do niej kolejny warunek, odnoszący się do tego elementu. Nie ma potrzeby budowania reguły od podstaw.

    Krok 2

    Kliknij lewym przyciskiem bohatera Samolot, następnie przejdź do obszaru Samolot(Prototype), gdzie znajduje się reguła odpowiedzialna za zmianę kierunku. Zauważ, że reguła ma aktywną funkcję When All of the following are happening, co oznacza, że reguła jest stosowana, gdy występują wszystkie z poniżej wymienionych warunków. Zmień polecenie All na Any. Od tej pory reguła będzie aktywna, gdy jakikolwiek z warunków zostanie spełniony, nie zaś wszystkie.

    Obraz

    Krok 3

    W polu type or drag in a condition wpisz Collision i wciśnij Enter. W ten sposób dodasz do gry warunek o nazwie actor overlaps or collides with i dalej actor or type. Oznacza to, że reguła będzie się aktywować, gdy samolot natrafi na innego bohatera, czyli chmurę – z menu przy actor or type wybierz Chmury.

    Obraz

    Tworzenie monety – punktów do zbierania w grze

    Kolejnym krokiem jest stworzenie mechaniki przechwytywania monet, czyli gromadzonych przez graczy punktów.

    Krok 1

    Stwórz nowego bohatera w obszarze <Actors> – kliknij ikonę +, dodaj bohatera i zmień jego nazwę na Moneta. Następnie przeciągnij obrazek Coin_0000000.png na pole Drag an Image Here, aby nadać wygląd monecie. Zauważ, że w zestawie z obrazkami znajduje się moneta widoczna z różnych stron:

    Obraz

    Krok 2

    Teraz zmień wymiary monety. W obszarze Attributes w zakładce Actor wpisz wartość 40 zarówno w wysokości, jak i szerokości (Width, Height) w polu Size. Następnie przeciągnij monetę na planszę gry, stwórz jej duplikat w taki sam sposób, jak w przypadku chmury i kolejno umieść po jednej monecie przy chmurze. Finalnie powinieneś uzyskać efekt taki jak na przedstawionym obrazku.

    Obraz

    Krok 3

    Teraz w obszarze Attributes w zakładce Game wciśnij przycisk + i stwórz nowy atrybut typu Integer, podobnie jak w pierwszej części kursu, gdy tworzyłeś taki sam atrybut o nazwie Lot samolotu. Kliknij dwukrotnie tworzony atrybut i nazwij go Która moneta. Jego wartość domyślna będzie wynosić 0 i taką należy zostawić.

    Obraz
    Obraz

    Krok 4

    Przejdź do zakładki Actor, wybierz ikonę + i utwórz atrybut Integer. Zwróć uwagę, że tym razem tworzysz atrybut dla bohatera Moneta, a nie ogólny atrybut dla gry w zakładce Game. Zmień nazwę atrybutu dla monety na Aktualna moneta. Następnie zaznacz na scenie gry monetę widoczną na dole i zmień wartość jej atrybutu Aktualna moneta z 0 na 1.

    Obraz

    Reguła pojawiania się monet

    Do czego potrzebny jest atrybut Która moneta i dlaczego stworzyłeś atrybut Aktualna moneta dla bohatera Moneta, gdzie dolna moneta ma wartość 1, a górna 0? Atrybut Która moneta pozwoli na tworzenie kolejnej reguły. Z kolei atrybut Aktualna moneta pozwoli na wyświetlanie danej monety wtedy, gdy przelatujący samolot będzie się z nią zderzał – jeśli zderzy się z tą na dole, wyświetli się moneta u góry, a jeśli u góry, wyświetli się ta na dole. Monety będą stale wyświetlane, natomiast dzięki atrybutowi <Aktualna moneta> będą mogły się chować – do tego wykorzystasz warunki w regułach.

    Krok 1

    Przejdź do zakładki Actors widocznej w górnej części programu GameSalad Creator i zaznacz bohatera Moneta. Następnie w obszarze Rules stwórz nową regułę, klikając ikonę plusa na przycisku Rule. Zmień nazwę reguły na Odradzanie, ponieważ będzie to reguła odpowiedzialna za „odradzanie się” monet po ich uprzednim zebraniu.

    Obraz

    Krok 2

    W polu type od drag in a condition wpisz Attribute i wciśnij Enter. Następnie kliknij przycisk strzałki widoczny obok stworzonego pola i wybierz w oknie Attribute Browser odpowiednio Attributes, Game i kliknij dwukrotnie Która moneta. Dodasz w ten sposób stworzony wcześniej atrybut dla gry.

    Obraz

    Krok 3

    W polu obok, które właśnie się pojawiło, kliknij przycisk strzałki i z okna Attribute Browser wybierz Attributes Moneta. Kliknij dwukrotnie Aktualna moneta, po czym wciśnij przycisk zielonego ptaszka, aby zatwierdzić zmiany. Ta reguła zacznie działać, gdy wartość umieszczona w atrybucie Która moneta będzie równa wartości umieszczonej w atrybucie Aktualna moneta. Dla przypomnienia: obie te wartości wynoszą 0, natomiast jedna z monet ma wartość 1.

    Obraz

    Krok 4

    Z obszaru Library przejdź do Zachowań (Behaviors) i przeciągnij – trzymając wciśnięty lewy przycisk myszy – zachowanie o nazwie Change Attribute do zakładki do w regule Odradzanie.

    Obraz

    Krok 5

    Użyj strzałki widocznej na końcu pola set i w nowym oknie Change Attribute wskaż Attribute, Moneta, Color i kliknij dwukrotnie Alpha. W polu obok wpisz wartość 0. Teraz kliknij przycisk Play i zauważ, że moneta widoczna u góry zniknęła – jej kolor Alpha zmienił się na 0, co w systemie gry GameSalad oznacza, że jest niewidoczna. Reguła zadziałała, ponieważ Która moneta (wartość 0) jest równa Aktualna moneta (wartości 0), co sprawia, że następuje zmiana koloru na 0 (moneta staje się niewidoczna). Natomiast moneta, która ma wartość atrybutu Aktualna moneta równą 1 pozostała widoczna – zmiany jej nie dotknęły.

    Obraz

    Krok 6

    Ten test pozwala lepiej przyswoić sobie działanie reguł, niemniej nie potrzebujesz zachowania Change Attribute na tym etapie, dlatego należy je usunąć. Zaznacz Change Attribute w polu do w regule Odradzanie i wciśnij przycisk Del na klawiaturze, aby usunąć atrybut.

    Krok 7

    Z zakładki Behaviors przeciągnij za to inne zachowanie, o nazwie Interpolate, i umieść je w polu do w regule Odradzanie. Interpolate zmienia wartość jednego atrybutu na inną przez ustalony czas. Wykorzystasz go do wygaszania monet i wyświetlania ich w odpowiednim momencie. W ten sposób samolot zbierze najpierw jedną monetę, która następnie zniknie i jednocześnie wyświetli się inna, po przeciwległej stronie – i też zniknie, gdy samolot ją zbierze.

    Obraz

    Krok 8

    To działanie trzeba zapętlić, aby było aktywne przez cały czas. Najpierw w polu Interpolate wybierz atrybut Moneta, Color i Alpha, a następnie zmień wartość na 1 i kliknij przycisk z zielonym ptaszkiem, aby wprowadzić zmiany.

    Obraz

    Krok 9

    W widocznym niżej polu for wpisz np. 0.3, jeśli chcesz, aby efekt znikania/pojawiania się monety trwał 0,3 sekundy.

    Obraz

    Efekt znikania zebranych monet

    Ponieważ kolor Alpha ustawiłeś na 1, teraz monety będą widoczne przez cały czas (1 = 100 proc. widoczności, 0 = 0 proc. widoczności). Póki co nawet jeśli samolot trafi w monetę, ona nie zniknie. Pora to zmienić!

    Krok 1

    Przeciągnij zachowanie Change Attribute, ale nie do reguły, lecz nad nią, na samą górę. Następnie w polu set wybierz Moneta,Color i Alpha, a w polu obok wpisz wartość 0. Od tej pory zacznie działać atrybut Interpolate – jeśli klikniesz przycisk Play, zauważysz, że moneta widoczna u góry, która ma atrybut Aktualna moneta o wartości 0, stopniowo wyłania się na początku gry i cała animacja trwa 0,3 sek.

    Obraz

    Krok 2

    Podobną animację trzeba przygotować dla monety widocznej na dole, z wartością atrybutu Aktualna moneta ustawioną na 1. W tym celu rozsuń w regule <Odradzanie> widoczną na dole zakładkę else, następnie zaznacz atrybut Interpolate widoczny u góry i wciśnij klawisz Alt. Następnie trzymając wciśnięty Alt, zduplikuj Interpolate i wstaw do pola else. Zmień wartość przy Interpolate z else na 0 n. To sprawi, że monety będą znikać i się pojawiać. Da to taki efekt wizualny, że samolot, który się z nimi zderzy, będzie je zbierał.

    Obraz

    Efekt zbierania monet przez samolot

    Po stworzeniu monet czas sprawić, aby samolot zaczął je zbierać.

    Krok 1

    Zwiń regułę Odradzanie i stwórz nową regułę, klikając przycisk +Rule. Nową regułę nazwij Reakcja monety, a w polu type or drag in a condition wpisz Collision i wciśnij Enter.

    Obraz

    Krok 2

    Następnie wybierz z listy bohaterów samolot, aby sprawić, że moneta będzie reagować na samolot, czyli głównego bohatera gry.

    Obraz

    Krok 3

    Przeciągnij zachowanie Change Attribute do pola <do> w regule Reakcja monety. Następnie w polu set wybierz z okna Change Attribute odpowiednio Game, Która moneta, a w polu obok o nazwie to wybierz z okna Game, Która moneta i wciśnij dwukrotnie lewy przycisk myszy.

    Krok 4

    Zanim wciśniesz zielony ptaszek, umieść kursor myszy przed atrybutem game.Która moneta i wpisz wartość 1- (koniecznie z minusem!) i dopiero wtedy zatwierdź zmiany. Przez to, że dodałeś wartość 1-, stworzysz sekwencję przełączania się – monety będą się pojawiać i znikać, gdy zderzą się z samolotem. Domyślnie wartość atrybutu Która moneta wynosi 0, więc w równaniu 1- 0 uzyskasz 1 (pojawienie się monety), ale gdy reguła zadziała ponownie, wtedy będzie to już równanie 1- 1, a to da 0 (znikanie). W ten sposób stworzy się nieskończona pętla 0, 1, 0, 1… Wciśnij przycisk Play – zobaczysz, że sekwencja z monetami działa już poprawnie.

    Obraz

    Wybrane dla Ciebie