Kolejny etap tworzenia naszej gry to liczenie punktów. No bo w końcu co to za gra, jeżeli nie jest oparta na rywalizacji… A żeby była rywalizacja musimy wiedzieć ile punktów zdobył każdy z graczy 🙂

Liczenie punktów jest zatem podstawą każdej gry.

Ponieważ jest to kolejny wpis z serii Scratch – pierwsza gra, zanim zaczniesz czytać ten tekst, zachęcam Cię do zapoznania się z poprzednimi wpisami:

Scratch – pierwsza gra

Scratch – jak to działa

Scratch – jak stworzyć grę

Jest to o tyle ważne, że w każdym kolejnym wpisie opisuję jak dodawać kolejne elementy gry do już istniejących, a dodatkowo na każdym kolejnym etapie korzystamy z wiedzy, którą zdobyliśmy poprzednim razem.

Przypomnijmy sobie historię

Pamiętajcie, że żeby gra była wciągająca i żeby Wasze dziecko z chęcią ją tworzyło powinna ona opowiadać historię.

Dzieci kochają historie !!!

Nasza wygląda tak:

„Tematem przewodnim naszej gry będzie historia kotka, który marzył, żeby być muzykiem. Niestety nie umiał grać na żadnym instrumencie. Ale żeby nauczyć się grać potrzebny jest instrument. Kotek musi zatem takowy zdobyć. Niestety, jak to w życiu zwykle bywa, nic nie jest takie proste jak się wydaje. Co prawda z nieba spadają instrumenty muzyczne, ale także głośniki, które mogą zwyczajnie przygnieść kotka…”

Jeżeli już pamiętacie swoją historię, czas żeby otworzyć grę 🙂

Przypomnę tylko, że żeby otworzyć projekt nad którym ostatnio pracowaliśmy, wchodzimy na stronę https://scratch.mit.edu. Jeżeli nie jesteś zalogowany – zaloguj się. Wybierz opcję „Moje rzeczy”, po czym odszukaj swój projekt. A następnie „Zajrzyj do środka”.

Czas na liczenie punktów.

Podczas ustalania koncepcji naszej gry – pisałam o tym w pierwszym wpisie z serii Scratch – ustaliliśmy, że punkty w naszej grze zdobywać będziemy za łapanie spadających instrumentów.

Jak sprawić, żeby instrumenty spadały z góry, uczyliśmy się we wpisie Scratch – jak to działa. Jeżeli pamiętacie jak to zrobić, nadszedł czas, żeby wykorzystać zdobytą wiedzę, a jeżeli nie, zawsze możecie zajrzeć do poprzedniego wpisu 🙂

Tylko nie poddawajcie się zbyt łatwo – dajcie sobie szansę i spróbujcie samodzielnie napisać kod, który sprawi, że oprócz Głośników, będą spadać także instrumenty muzyczne. Pozwalajcie sobie na popełnianie błędów i testujcie kolejne fragmenty stworzonego kodu.

My na początek zajęliśmy się duszkiem Bass. W tym celu z sekcji Duszki wybieramy Bass i w zakładce Skrypty umieszczamy kod. Oto nasza propozycja:

Zauważ, że w skrypcie tym użyliśmy zmiennej położeniex. Nie jest to ta sama zmienna, która znajduje się w kontekście duszka Głośnik !

Do poprawnego działania naszego programu, musimy mieć zmienną oznaczającą położenie x, prywatną dla każdego duszka.

Przypomnę tylko, że aby stworzyć taką zmienną wybieramy sekcję “Dane”, tam “Utwórz zmienną”, nadajemy jej nazwę, wybieramy opcję “Tylko dla tego duszka” i naciskamy przycisk OK.

Jeżeli nie chcecie, żeby zmienna ta pojawiała się na ekranie gry, nie zapomnijcie odznaczyć pola przy nazwie zmiennej:

Czas na test !

Super! Oprócz Głośników, z którymi spotkanie powoduje koniec gry, spadają także instrumenty 🙂

Hmm, ale jak sprawić, żeby za złapanie Bass’a liczyły się punkty?

Co jest nam potrzebne, żeby rozpocząć liczenie punktów?

Oprócz pomysłu na to, jak będziemy liczyli punkty w naszej grze, potrzebujemy jeszcze:

  • miejsca w którym będziemy przechowywać zdobytą liczbę punktów (zmienna)
  • kodu, który sprawi, że za każdym razem, kiedy Puszek dotknie określonego instrumentu, punkt doda się do ogólnej liczby punktów
  • kodu, który sprawi, że za każdym razem podczas uruchamiania gry licznik będzie się zerował

No dobrze, wiemy już co mamy zrobić, zatem do dzieła !

Dodajemy licznik punktów

Licznikiem punktów w naszej grze będzie zmienna, która będzie widoczna w kontekście każdego duszka, a także będzie wyświetlona na scenie.

Żeby dodać taką zmienną wybieramy sekcję „Dane”, wciskamy guzik  „Utwórz zmienną”, nadajemy jej nazwę punkty, zostawiamy domyślnie zaznaczona opcję „Dla wszystkich duszków” i wciskamy przycisk „OK”.

 

Ponieważ zmienna ta jest tak samo widoczna dla każdego duszka, nie ma znaczenia w kontekście którego zostanie ona stworzona.

W ten sposób, nasza zmienna pojawiła się nie tylko na ekranie Sceny, ale także w kontekście wszystkich duszków.

Zachęcam, żeby sprawdzić to sprawdzić 🙂

To w którym miejscu sceny widoczna będzie informacja o liczbie punktów zależy tylko od Was.

Jeżeli chcecie ją przesunąć możecie to zrobić poprzez przesuwanie jej po scenie.

Inkrementujemy licznik

No dobrze, ale licznik ma sens dopiero wtedy, gdy jest inkrementowany.

Za każdym razem, kiedy kotek dotknie instrument muzyczny, liczba punktów powinna się zwiększyć. Porozmawiaj z dzieckiem ile punktów powinien dostać bohater po zdobyciu instrumentu 🙂

U nas jest to 1 punkt.

Zwróć uwagę, że liczba punktów powinna się zwiększyć po tym, jak kotek dotknie instrument. Oznacza to tyle, że akcja ta powinna być wykonana w kontekście Puszka.

Włączamy zakładkę Skrypty dla Duszka.

Pamiętacie blok „jeżeli?” – znajduje się on w sekcji “Kontrola”.

Do bloku „jeżeli” potrzebujemy warunku.

Z sekcji czujniki wybieramy  blok „dotyka”, w którym z listy rozwijanej wybieramy „Bass”.

Zastanów się z dzieckiem co powinno się wydarzyć, kiedy kotek dotknie instrument…

Jeżeli chcecie po prostu zwiększyć ilość punktów, z sekcji „Dane” wybierzcie blok „zmień punkty o 1” i umieśćcie go w bloku „jeżeli”.

 

I test 🙂

Moje dziecko od razu zauważyło lukę w tym rozwiązaniu. Wy też ją widzicie?

Można za jednym razem zdobyć naprawdę sporo punktów 😉 Wystarczy być w miejscu w którym leży instrument muzyczny…

No dobrze, to co z tym można zrobić ?

Ukryjmy złapany instrument

W odpowiedzi na sytuację, w której możemy zdobyć dowolną ilość ( a przynajmniej bardzo dużą ilość ) punktów poprzez dotykanie ciągle jednego instrumentu, pierwszym naszym pomysłem było użycie bloku  „ukryj”. Znajduje on się w sekcji „Wygląd”.

Użyliśmy tego bloku w bloku „jeżeli”. Wyglądało to tak:

 

Szybki test i już wiedzieliśmy, że nie o to nam chodziło 🙂

Oczywiście duszkiem, który zniknął był nasz Puszek, a nie instrument, który właśnie złapaliśmy…

Hmmm… I co teraz?

Poznajmy komunikaty

Z pomocą przyszedł nam bloczek znajdujący się w sekcji „Komunikaty” o nazwie „nadaj”.

Z pewnością znacie tę sekcję doskonale. To właśnie tutaj znajdują się zdarzenia, które są początkiem dla każdego fragmentu programu jaki tworzymy.

Tym razem jednak nie tylko mamy reagować na komunikat, czyli jakieś zdarzenie, ale sami mamy takie zdarzenie zainicjować.

To właśnie w tym celu stworzony został bloczek „nadaj”.

Żeby go użyć należy wybrać go z biblioteki i na liście rozwijanej wybrać opcję „nowy komunikat…”. Po jej użyciu pojawia się okienko z polem tekstowym, w które wpisujemy nazwę naszego komunikatu.

U nas jest to „bassDotkinięty”.

Świetnie! Tak stworzonym bloczkiem zastępujemy zawartość bloku „jeżeli dotyka Bass”:

 

Ok. Ale co z tego, że ogłosiliśmy, że Bass został dotknięty przez kotka, jak nikt na ten komunikat nie zareagował…

Czas odebrać nadany przed chwilą komunikat

W tym celu musimy znaleźć się w kontekście, który pozwoli nam na prawidłowe użycie opcji „ukryj”. Tym miejscem jest oczywiście kontekst duszka, który powinien zostać ukryty.

W sekcji Duszki wybieramy ikonkę „Bass” i w zakładce „Skrypty” odbieramy nadany przed chwilą komunikat.

Pomoże nam w tym bloczek „kiedy otrzymam” z sekcji “Zdarzenia”. Z listy rozwijanej wybieramy „bassDotknięty”.

I to jest właśnie miejsce, w którym możemy inkrementować ilość zdobytych punktów oraz  ukrywać duszka.

Czas na test.

Brawo! Działa całkiem dobrze.

Jeszcze tylko jedna uwaga… Po zakończeniu gry i uruchomieniu jej na nowo ilość punktów zostaje taka, jaka była w poprzedniej rozgrywce.

Żeby temu zapobiec na początku gry, czyli „kiedy kliknięto zieloną flagę” ustawiamy ilość punktów na „0” (bloczek „ustaw punkty na 0” z sekcji “Dane”). Oczywiście zmienną punkty możemy wybrać z listy rozwijanej.

Ponieważ ustawienie punktów na 0 nie ma bezpośredniego związku z żadnym duszkiem, proponuje zrobić to w kontekście Sceny. Oczywiście zadziała to w dowolnym kontekście, ponieważ zmienna punkty jest tak samo widoczna dla każdego duszka i dla sceny.

Kod Sceny:

Ostateczny test.

Mamy grę w którą możemy nie tylko grać, ale także rywalizować !

Poniżej pokazuję pełne skrypty stworzone do tej pory:

Skrypty Puszka:

Skrypt Głośnika:

Skrypty Bassu:

Skrypt Sceny:

Praca domowa 😀

Dzisiaj stworzyliśmy możliwość zliczania punktów po „złapaniu” jednego z instrumentów. W naszej grze do obsłużona zostały jeszcze dwa inne instrumenty. Czy w Twojej grze jest podobnie?

Zadanie domowe polega na tym, żeby powielić zachowanie związane ze złapaniem instrumentu dla kolejnych duszków. Zachęcam do eksperymentowania z zakresem czasu w którym spada instrument, tym kiedy on spadnie, ile będzie leżał na ziemi oraz z ilością punktów, jakie dostaje się za zdobycie danego instrumentu.

Możecie np. założyć, że niektóre instrumenty będą cenniejsze, czyli można za nie zdobyć więcej punktów, ale za to będą bardzo szybko leciały i w zasadzie nie będą leżały na ziemi. Za to inne będą leciały bardzo wolno, spadały będą często, ale będą warte tylko 1 punkt itd…

Pamiętajcie, że zasady są Wasze i to od Was zależy jak trudna będzie Wasza gra 🙂

Jeżeli dotarłeś, Drogi Rodzicu, do końca tego wpisu, a może nawet przeszedłeś wspólnie ze swoim Dzieckiem przez wszystkie kroki związane z tworzeniem gry, daj mi proszę znać w komentarzu czy moje wskazówki są pomocne, czy stworzyliście (Ty i Twoje Dziecko) własne rozwiązanie ?

A może jakieś kwestie wymagają głębszego wyjaśnienia?

Postaram się odpowiedzieć na każde zadane przez Ciebie pytanie 🙂

A w kolejnym wpisie pokażę nasze skrypty dla Wszystkich instrumentów i przyjdzie czas na publiczne udostępnienie naszych gier !