![]() |
| Autor Simone Hutsch na platformie Unsplash |
Tym razem podejmiemy się ukończenia gry. Tempo tego wpisu będzie od Was wymagało nieco wprawy nabytej podczas poprzednich postów. Ci, którzy dopiero zaczynają przygodę powinni zwrócić uwagę na pierwszy post z tej serii (link).
Jak pamiętacie nasza gra dotychczas zawiera belkę, którą steruje gracz oraz piłkę, która odbija się od belki. Następny krok to dodanie bloczków, dzięki którym w naszą grę będzie można wygrać!
Pierwszym, co musimy zrobić to dodać do gry nowego duszka - "Button3". Znajdziecie go jak zwykle w menu "Wybierz duszka".

Źródło: https://scratch.mit.edu
Po wybraniu duszka musimy zająć się jego programem. Naszym zadaniem będzie utworzenie wielu identycznych duszków na ekranie, rozłożonych obok siebie tak, aby nie stykały się ze sobą i pozwalały na grę. Ponadto musimy kontrolować ich ilość na ekranie - będzie to nam potrzebne, aby dowiedzieć się czy wszystkie klocki zostały już zbite.
Zanim zaczniemy tworzyć program dla duszka, utworzymy nową zmienną.
Zmienna to tak naprawdę rodzaj pudełka w programie. Możemy do niego chować różne rzeczy, na przykład liczby. Dzięki zmiennym możliwe jest przechowywanie danych przydatnych wiele razy, przykładowo liczbę klocków na ekranie. Zmienne zgodnie z nazwą mogą ulegać zmianie - pozwoli to w naszym programie zwiększać i zmniejszać zapisaną liczbę klocków.
Aby utworzyć zmienną należy przejść do kategorii "Zmienne" na liście dostępnych bloków. Tam znajdziemy przycisk "Utwórz zmienną".

Źródło: https://scratch.mit.edu
Po kliknięciu na niego LPM pojawi się okno z polem do wpisywania. W miejsce to umieścimy nazwę naszej zmiennej. Ja wpiszę "liczbaKlockow" ale Wy możecie wybrać lepszą według Was nazwę.
W świecie programowania nazywanie zmiennych to bardzo ważna sprawa. Zazwyczaj niedopuszczalne jest wstawianie spacji i kilku innych znaków w nazwy. Ponadto istnieje wiele sposobów na tworzenie nazw, na przykład metoda camelCase, w której każdy wyraz w nazwie zaczyna się z dużej litery (poza pierwszym), lub snake_case gdzie wyrazy łączą znaki "podłogi", czyli "_". Ważne jest również to, aby nazwa zmiennej opowiadała co nieco o jej zawartości. Zmienna "a" wcale nie podpowiada że może się w niej znaleźć wiek gracza, ale zmienna "wiekGracza" już tak.
Po wpisaniu nazwy utworzenie zmiennej należy zatwierdzić, klikając przycisk "Ok". Po utworzeniu nowego projektu w skreczu istnieje już jedna zmienna: "moja zmienna". Aby nie podsuwała nam się ona w trakcie tworzenia programów, usuńmy ją.
Aby usunąć zmienną należy kliknąć na nią PPM i wybrać opcję "Usuń zmienną "moja zmienna"".

Źródło: https://scratch.mit.edu
Po tym zabiegu w naszym programie zostanie tylko nasza zmienna. Wykorzystamy ją teraz w programie dla duszka "Button3". Zaczniemy od dodanie bloczka "kiedy kliknięto" z zieloną flagą. Drugi bloczek znajduje się znów w kategorii "Zmienne" i nazywa się "ustaw liczbaKlockow na 0". Po przeciągnięciu go i przyczepieniu do pierwszego bloczka będziemy mieli gotowy mechanizm zerujący wynik za każdym nowym rozpoczęciem gry.

Źródło: https://scratch.mit.edu
Kolejny krok to zmniejszenie rozmiaru duszka tak, abyśmy mogli zmieścić więcej takich samych klocków na ekranie. Posłuży nam do tego bloczek "ustaw rozmiar na 100%" (tak jak w przypadku piłki). Zmienimy jedynie liczbę 100 na 50, co zmniejszy rozmiar bloczka do połowy (czyli 50 procent).
Następnym zadaniem jest ustawienie klocka w odpowiednim miejscu ekranu. Użyjemy do tego bloczka "idź do x: y: ", wpisując w niego odpowiednio "-200" oraz "150".

Źródło: https://scratch.mit.edu
Po tym jak ustawiliśmy odpowiednią pozycję klocka, czas na najważniejszy jego element - klonowanie. Dzięki sklonowaniu klocka będziemy mogli utworzyć wiele takich samych duszków, ustawionych na ekranie.
Aby sklonować duszka ustawiając kolejne klocki w odpowiednich miejscach, trzeba będzie stworzyć pętlę wewnątrz innej pętli!
Przez pętle rozumiemy części programu, które wykonują program zazwyczaj więcej niż raz. Dzięki temu można na przykład tworzyć nowe duszki przesuwając każdego duszka nieco dalej.
Użyjemy najpierw pętli "powtórz 10 razy". Dołączcie ją do programu i zmieńcie liczbę 10 na 2 (będą to dwa rzędy klocków licząc od góry do dołu ekranu). Następnie w jej wnętrzu dodajcie drugi raz pętlę, tym razem wpisując liczbę 6 (liczba ta będzie oznaczała liczbę klocków w rzędzie od lewej do prawej strony sceny). Pętle w programie po tych zmianach powinny wyglądać tak jak poniżej:

Źródło: https://scratch.mit.edu
Teraz musimy dodać część programu, która spowoduje że nasze klocki sklonują się. Wewnątrz pętli wykonującej się sześć razy dodajmy bloczek "utwórz klona z siebie" znajdujący się w kategorii "Kontrola".
Kolejny bloczek umieszczamy zaraz za nim: "zmień x o " wpisując do niego liczbę 80. Dzięki niemu po utworzeniu duszka przesuniemy się trochę w prawą stronę, co da nam miejsce na kolejnego duszka.
Ostatni bloczek w tej pętli to "zmień liczbaKlockow o 1". Dzięki niemu będziemy dokładnie zapisywać ile klocków mamy na ekranie. Informacja ta będzie zapisana w naszej zmiennej.
W programie dodamy jeszcze dwa bloczki: "zmień y o -50" oraz "ustaw x na -200". Bloczki te powinny zostać dołączone za wewnętrzną pętlą. Dzięki tym bloczkom po utworzeniu jednego wiersza z klockami przeniesiemy się do następnego wiersza.
Źródło: https://scratch.mit.edu
W ten sposób kończymy jeden z trzech programów jakie są potrzebne aby duszki "Button3" spełniły dobrze swoją rolę w grze.
Źródło: https://scratch.mit.edu
Zajmiemy się teraz drugim i trzecim programem. Drugi program składał się będzie tylko z dwóch bloczków: "kiedy kliknięto" z zieloną flagą oraz "ukryj". Rolą tego programu będzie ukrycie duszka z którego tworzymy klony. Nie będzie nam on potrzebny w programie, dlatego go ukryjemy natychmiast po rozpoczęciu gry.
Czas na program nr 3. Jego zadanie będzie polegało na wychwyceniu momentu, gdy klocka dosięgnie piłka, co oznacza zbicie. Na początku jednak trzeba pokazać klony, ponieważ na początku będą one ukryte!
Źródło: https://scratch.mit.edu
Program który pokazuje klony będzie bardzo podobny do ukrywania duszka. Różnica polega na tym, że będzie on działał tylko na klony - bez duszka który jest klonowany na starcie. Dodajcie dwa bloczki: "gdy zaczynam jako klon" oraz "pokaż".
Aby klocek zareagował zbiciem tylko gdy zostanie dotknięty przez piłkę, wykorzystamy bloczek "czekaj aż". W jego wolne pole wstawmy bloczek "dotyka wskaźnik myszy" z kategorii "Czujniki". W bloczku "wskaźnik myszy" zamieńcie na "Ball". Dzięki temu dalszy program wykona się tylko wtedy, gdy piłka dotknie tego konkretnego klona który się z nią będzie stykał.
Źródło: https://scratch.mit.edu
Kolejnym bloczkiem jest "zmień liczbaKlockow o 1" który dodamy, zmieniając jedynie cyfrę 1 na "-1", co będzie oznaczało zbicie klocka.
Zostały nam dwa bloczki do ukończenia programu tego duszka. Pierwszy z nich jest nowością, nazywa się "nadaj komunikat wiadomość1". Dzięki niemu powiadomimy program znajdujący się u duszka "Ball" o tym, że udało się zbić klon duszka "Button3". Wykorzystamy tę wiedzę za chwilę, kończąc program piłki.
Źródło: https://scratch.mit.edu
Teraz natomiast musimy jeszcze dodać ostatnią rzecz - usunięcie klona aby nie dało się od niego odbić więcej razy. Posłuży nam do tego bloczek "usuń tego klona".
Ostatecznie kod powinien wyglądać podobnie do tego poniżej:
Program klocków został ukończony! Ostatnim elementem naszej gry jest sprawienie, że piłka zareaguje na dotknięcie klocka.
Źródło: https://scratch.mit.edu
Przejdźmy najpierw do programu piłki, klikając na nią pod sceną.
Drugi program tego duszka nie będzie rozpoczynał pracy po rozpoczęciu gry, a dopiero wtedy, gdy otrzyma komunikat nadany przez klona duszka "Button3".
Źródło: https://scratch.mit.edu
Dodajmy do programu bloczek "kiedy otrzymam wiadomość1". Będzie on początkiem tej części programu duszka. Zaraz za nim należy dodać bloczki składające się na tekst "ustaw kierunek na losuj liczbę od 120 do 240". Takie ułożenie robiliśmy już w programie obok - warto tam zajrzeć aby przypomnieć sobie jakie bloczki były do tego potrzebne.
Po dodaniu ostatniego bloczka piłka zacznie zmieniać kierunek po odbiciu się od jednego z klocków. Ostatnią rzeczą o jaką powinniśmy zadbać to sprawdzenie czy pozostały jakiekolwiek klocki po zbiciu. Jeśli nie ma już ani jednego klocka, oznacza to że gra zakończyła się wygraną.
Źródło: https://scratch.mit.edu
Pierwszy potrzebny bloczek to "jeżeli to". Po dodaniu, w jego wolne pole należy dodać bloczek z kategorii "Wyrażenia", " = 50". bloczek ten sprawdzi czy pozostały niezbite klocki. Aby tak zadziałał, należy w pola zielonego bloczka wstawić kolejno "liczbaKlockow" z kategii "Zmienne" oraz "0" po drugiej stronie. Zestaw tych klocków sprawdzi, czy liczba klocków wynosi 0. Jeśli tak, wykona się program dodany przez nas za chwilę, obsługujący wygraną.
Pozostały nam do dodania dwa bloczki: "zmień tło na Wygrana" oraz "zatrzymaj wszystko". Obydwa bloczki powinny znaleźć się wewnątrz bloczka "jeżeli to".
Źródło: https://scratch.mit.edu
Ostatecznie wygląd programu będzie wyglądał tak jak poniżej:
To koniec prac nad naszą grą! Niesamowite jak dużo ciekawej pracy trzeba było wykonać żeby dotrzeć aż tutaj. Aby zagrać w naszą grę, wystarczy użyć zielonej flagi znajdującej się nad sceną.
Źródło: https://scratch.mit.edu
Możecie się teraz pochwalić innym jakie niesamowite rzeczy umiecie zaprogramować! Oczywiście nic nie stoi na przeszkodzie, abyście ulepszyli tę grę. Jest na to wiele pomysłów i wierzę że macie ich całe mnóstwo! Już teraz przychodzi mi na myśl użycie kolejnej zmiennej aby zmieniać prędkość piłki i szereg innych fajnych dodatków.
Teraz rozkoszujcie siebie i innych tym co udało Wam się stworzyć, a za chwilę zróbice sobie trochę wolnego - ten wpis na pewno wymagał od Was nieco sił!
Trzymajcie się i do zaczytania!

Komentarze
Prześlij komentarz