Gra typu Balance cz.4

Zmodyfikowałem główny skrypt który wygląda teraz tak:





Najpierw usunąłem Debug.Log z końca poprzedniej części poradnika i zastąpiłem go odwołaniem do funkcji wygrana. Na początku funkcji wygrana ustawiłem warunek if ponieważ z jakichś nieznanych mi przyczyn te dwa obiekty które powinny się pojawić po wygranej tworzą się tyle razy ile czerwonych skrzynek usunięto. Na pewno jest na to jakieś wytłumaczenie, lecz ja nie potrafię go teraz znaleźć. Jeżeli ktoś wie to niech napisze. Tak więc zostaje stworzony obiekt z napisem wygrana, który ma osobny Prefab w zakładce Project. Drugi obiekt to obrazek z napisem Tak, który już pojawił nam się wcześniej przy okazji generowania monitu o przegranej. Aby nie tworzyć dla niego osobnego obiektu prefab, to po pojawieniu się obrazka Tak na ekranie zmienimy jego nazwę. Dzięki temu unikniemy sytuacji że klikniemy na Tak żeby przejść do następnej rundy, a tak naprawdę gra się nam zresetuje gdyż wcześniej przypisaliśmy takie działanie w przypadku naciśnięcia na ten obiekt.


Jeszcze tylko musimy wpisać warunek if w funkcji Update aby ustalić co się stanie po tapnięciu na przycisk Tak:

W powyższym przypadku wgra nam się scena z indeksem numer 1. Czyli jeżeli wszystko mamy w porządku to możemy tworzyć następne rundy.

Trzeba pamiętać że po włączeniu naszej aplikacji, domyślnie ładuje się scena o indeksie 0 więc zalecam zostawienie jej na nasze menu.

Przejdźmy do udźwiękowienia naszej gry. Aby dodać muzykę przeciągamy jakiś plik na przykład z rozszerzeniem .ogg do zakładki Project. Trzeba pamiętać że iPhone może odtwarzać tylko jedną skonpresowaną ścieżkę dźwiękową na raz (przynajmniej tak pisze w manualu), więc dla muzyki = kompresja, a dla innych krótkich efektów dźwiękowych jakiś wav bez kompresji...unity później się samemu z tym upora. Aby nasza muzyka grała niesmiennie na stereo musimy dodać ją do naszej kamery. Aby to zrobić klikamy na zakładkę Components > Audio > Audio Source:


Dodaliśmy źródło dźwięku. Teraz wystarczy w zakładce Inspector przypisać nasz plik dźwiękowy do zmiennej Audio Clip:


Aby muzyka zaczęła grać od razu po załadowaniu gry powinniśmy mieć zaznaczone Play On Awake.

Aby po każdym zderzeniu którejś skrzyni uruchamiał się jakiś wybrany dźwięk musimy stworzyć nowy skrypt i wkleić do niego tą treść:




Do zmiennej podstawiamy nasz plik dźwiękowy i dołączamy nasz nowy skrypt do każdego obiektu który ma emitować dźwięk w przypadku zderzenia. Dodajemu również Component o nazwie Audio Source i tam możemy przypisać nasz plik dźwiękowy.

Kolejną ważną rzeczą która może się przydać w późniejszym etapie tworzenia gry jest zapisywanie wyników lub innych danych na przykład czy dana runda została już wygrana wcześniej i czy powinna być odblokowana w menu. Do tego celu służy PlayerPrefs. Nie będziemy dokładnie poruszać tego problemu ale dla przykładu wyjaśnię o co w tym chodzi. Gdy robiłem moją poprzednią grę, Resumo, do zapisu ilości punktów używałem właśnie PlayerPrefs.
Zakładając że mamy w skrypcie zmienną:
var score : int;
to aby zapisać jej wartość musimy użyć takiej komendy:

PlayerPrefs.SetInt("wynik", score);
takim sposobem nasz wynik ze zmiennej score zostanie zapisany wewnątrz pamięci PlayerPrefs pod nazwą wynik. I nawet po zamknięciu naszej aplikacji i po włączeniu jej spowrotem, nasz wynik dalej będzie tam zapisany. Teraz aby w dowolnym momencie odzyskać nasz wynik używamy komendy:

kaa = PlayerPrefs.GetInt("wynik");
I takim sposobem zmienna kaa uzyskuje wartość którą przechowywaliśmy w  PlayerPrefs o nazwie wynik. Możemy użyć tego sposobu na przykład do prowadzenia tablicy wyników. Chociaż do tego celu polecam OpenFeint'a.

To już chyba wszystko co trzeba wiedzieć aby stworzyć powyższą grę. Życzę owocnej pracy nad nową grą i dużą ilość pieniędzy zdobytych na jej sprzedaży. Ja tymczasem sprubuję stworzyć grę na podstawie  mojego tutoriala i jeżeli mi się uda i nie spocznę na laurach to niedługo również wydam podobną grę.

Jeżeli macie jakieś pytania to piszcie w komentarzach.

0 komentarze:

Prześlij komentarz