Scenariusz gry

Pewnie nie raz bawiliście się grą, w której bohater musiał przejść przez jakiś labirynt, wykonując określone zadania - np. zebrać skarby, uniknąć spotkania z groźnymi przeciwnikami i dotrzeć do określonego celu. Twoje zadanie będzie polegało na stworzeniu podobnej gry w programie Scratch.

Jeżeli potrzebujesz przypomnieć sobie podstawy środowiska Scratch, skorzystaj z tego materiałuP9AYGQXHJtego materiału.

Najpierw zastanów się nad scenariuszem gry, bohaterami, którzy w niej wystąpią, nad tym, co będzie ich zadaniem i jakie przeszkody napotkają. Musisz także pomyśleć, jak będzie wyglądała plansza gry, a następnie opisać wszystkie czynności, które powinien wykonywać komputer.

Zacznij od projektu, w którym występuje mysz (steruje nią gracz). Jej zadanie polega na pokonaniu labiryntu i zdobyciu jabłka. Sceneria gry będzie przypominać szachownicę. Gracz będzie mógł przesunąć mysz za każdym razem o jedno pole oraz zmienić kierunek, w którym mysz będzie się poruszała. Na planszy wystąpią pola w dwóch kolorach - zielonym i czerwonym. Zielony będzie oznaczał korytarz, czyli pola, po których mysz będzie mogła się poruszać, a czerwony - ściany, czyli pola, niedostępne dla myszy. Gracz wygrywa, gdy doprowadzi mysz do jabłka ukrytego w labiryncie.

R1WWY7TXxyKj7
Podgląd gry labirynt.
Źródło: Janusz Wierzbicki, licencja: CC BY 3.0.

Wykorzystaj poniższy dzienniczek na zapisanie swoich notatek i przemyśleń.

Ry23rlC3Kd8uq
Źródło: GroMar, licencja: CC BY 3.0.
1
Ćwiczenie 1

Określ, czym powinno być jabłko, które ma zdobyć mysz. Rysunkiem, który wykonasz na scenie, czy drugim duszkiem – a może masz inne pomysły?

Rur7jrfT0XAoo
Źródło: GroMar, licencja: CC BY 3.0.
1
Polecenie 1

Uruchom program Scratch i wczytaj do niego planszę z labiryntem jako nowe tło sceny. Pamiętaj o usunięciu domyślnego, białego tła.

Poniżej możesz pobrać plik graficzny, którego możesz użyć jako planszy z labiryntem. W kolejnych ćwiczeniach będziemy korzystać z tej planszy, ale możesz również stworzyć własną grafikę.

Rnzcu0UjB03P6

Tło z labiryntem.

Tło z labiryntem.
Źródło: GroMar, licencja: CC BY 3.0.
Plik PNG o rozmiarze 15.68 KB w języku polskim
1
Ćwiczenie 2

Usuń domyślnego duszka – kotka. Dodaj z galerii duszki z postaciami myszy oraz jabłka. Zmień ich nazwy odpowiednio na: Mysz oraz Jabłko. Ustaw ich rozmiar w taki sposób, by w całości mieściły się na pojedynczym polu planszy.

R1bIxTeb1WB5q
Ćwiczenie 2
Zastanów się, jak zmienić rozmiar duszka w programie Scratch? Możliwe odpowiedzi: 1. Po prawej stronie, pomiędzy sceną a obszarem wyboru duszków znajduje się pole "rozmiar"., 2. Po lewej stronie, tuż obok kategorii znajduje się pole edycji duszków., 3. Wywołując menu kontekstowe klikając prawym przyciskiem myszy na wybranego duszka.
Źródło: GroMar, licencja: CC BY 3.0.
Uwaga!

Pamiętaj, żeby zapisać swój projekt - np. pod nazwą Labirynt 1. Następne wersje projektu możesz zapisywać, zmieniając jedynie numer w nazwie na kolejny. Dzięki temu możliwe będzie ewentualne wrócenie do dowolnej, wcześniejszej wersji.

Zasady gry i przepis dla komputera

Mając gotowy scenariusz, musisz uszczegółowić wszystkie czynności, które będzie wykonywał komputer. To znaczy, że należy określić, kiedy i w jaki sposób komputer ma reagować, aby gra działała dokładnie tak, jak chcesz.

2
Ćwiczenie 3

Określ, jakie czynności powinien wykonywać komputer w tej grze, czyli co trzeba zaprogramować. Podziel je na trzy kategorie:

  1. czynności startowe (wszystkie czynności wykonywane przed rozpoczęciem gry, np. po wciśnięciu zielonej flagi),

  2. sterowanie (jak gracz będzie poruszał myszą),

  3. zdarzenia w grze (co ma się stać, np. gdy mysz dotrze do jabłka).

R1ayjTdYGk7K9
Źródło: GroMar, licencja: CC BY 3.0.
2
Ćwiczenie 4

Do ustawienia duszków myszy oraz jabłka na pozycjach startowych możesz wykorzystać blok idź do x: … y: …m53f8e5c73a23293b_d811e140idź do x: … y: … . Oblicz wartości x oraz y, które pozwolą umieścić postaci na środku tych samych pól, co na przykładowej planszy poniżej. Wpisz i sprawdź swoją odpowiedź.

Zdjęcie numer 1. Pojedynczy blok algorytmu.

Na zdjęciu widać pojedynczy blok algorytmu. W bloku znajduje się napis: idź do x: 0 y: 0.

Zdjęcie numer 2. Przykładowy algorytm programu.

Na zdjęciu widać przykładowy algorytm programu.
W pierwszym bloku programu znajduje się napis: kiedy kliknięto. Za napisem widoczna jest zielona flaga.
W drugim bloku algorytmu widoczny jest pisak za którym umieszczony jest napis: ustaw rozmiar pisaka na trzy.
W trzecim bloku algorytmu widoczny jest pisak za którym jest napis: przyłóż pisak.
W czwartym bloku algorytmu znajduje się napis: idź do x: 100 y: 100.
W piątym bloku algorytmu znajduje się rysunek pisaka oraz napis: podnieś pisak.
W szóstym bloku algorytmu znajduje się napis: zatrzymaj ten skrypt.
Po prawej stronie algorytmu znajduje się animowany kot Scratch. Skierowany jest on w prawą stronę i zostawia niebieski ślad po przejściu.

RJ0m3yewCxwZy
Plansza gry - labirynt.
Źródło: Janusz Wierzbicki, licencja: CC BY 3.0.
RDPXmye6rBoyP
Mysz powinna zostać umieszczona na pozycji x Tu uzupełnij y Tu uzupełnij ,
Jabłko powinno zostać umieszczone na pozycji x Tu uzupełnij y Tu uzupełnij.
Źródło: Janusz Wierzbicki, licencja: CC BY 3.0.
RhFo8ebuDA3o7
Ćwiczenie 5
Zastanów się, o ile kroków powinna przesunąć się myszka, aby znaleźć się dokładnie na środku następnego pola? Wpisz i sprawdź swoją odpowiedź. Myszka powinna przesunąć się o Tu uzupełnij kroków, aby znaleźć się na środku sąsiedniego pola.
Źródło: Janusz Wierzbicki, licencja: CC BY 3.0.
RckSKPrTrVIS51
Ćwiczenie 6
Zastanów się, o ile stopni powinien obracać się duszek - mysz w lewą lub w prawą stronę, by mógł poruszać się tylko pionowo (w górę lub w dół) lub poziomo (w prawo lub lewo) między sąsiednimi polami. Załóż, że duszek patrzy w prawo. Duszek powinien obracać się o Tu uzupełnij stopni.
Źródło: Janusz Wierzbicki, licencja: CC BY 3.0.
1
Ćwiczenie 7

Określ, co ma się stać, gdy mysz wejdzie na czerwone pole.

R1OPQXHln4dCM
Źródło: GroMar, licencja: CC BY 3.0.
1
Ćwiczenie 8

Określ, co ma się stać, gdy mysz dotrze do jabłka.

RhkDKl1GWe1Y5
Źródło: GroMar, licencja: CC BY 3.0.
2
Ćwiczenie 9

Określ, jakie klawisze wykorzystasz do sterowania duszkiem - myszą.

R1Mm5vfzk7JZx
Źródło: GroMar, licencja: CC BY 3.0.
m53f8e5c73a23293b_d811e140

Tworzenie skryptów duszków

W trakcie poprzednich zadań, ustalono następujące reguły dotyczące gry:

  1. Czynności startowe

    • Ustawienie myszy na polu startowym (np. x:-180, y:120),

    • Ustawienie jabłka na odpowiednim polu (np. x:-180, y:-80),

  2. Sterowanie

    • Strzałka w prawo: obróć o 90 stopni w prawo,

    • Strzałka w lewo: obróć o 90 stopni w lewo,

    • Spacja: przesuń o jedno pole (czyli 40 kroków),

  3. Zdarzenia

    • Jeśli mysz zostanie wprowadzona na czerwone pole:

      • wyda dźwięk pop (dostępny w galerii dźwięków),

      • cofnie się na poprzednie pole.

    • Jeśli mysz dotrze do jabłka:

      • wyświetli w dymku komiksowym „Hura! Wygrałam”,

      • zakończy działanie wszystkich skryptów.

Należy jeszcze ustalić, w którym miejscu skryptów powinna nastąpić kontrola zdarzeń, czyli sprawdzenie, czy mysz nie weszła na czerwone pole lub nie znalazła jabłka. Zacznij jednak od utworzenia skryptów, które zrealizują czynności startowe oraz sterowanie. Później dodasz obsługę zdarzeń.

2
Ćwiczenie 10

Stwórz skrypty dla myszy oraz jabłka, które po wciśnięciu zielonej flagi ustawią duszki na pozycjach startowych. Przetestuj działanie skryptów i sprawdź, czy duszki znalazły się na pozycjach startowych po wciśnięciu zielonej flagi.

RX8QJBsa5CZNN
Ćwiczenie 10
Jak nazywa się blok który pozwala ustawić duszka w wybranym miejscu? Możliwe odpowiedzi: 1. ustaw kierunek na ..., 2. Idź do x: ... y: ..., 3. Zmień X o ..., 4. Ustaw Y na ...
Źródło: GroMar, licencja: CC BY 3.0.
2
Ćwiczenie 11

Stwórz skrypty sterujące duszkiem - myszą zgodnie z ustaleniami z poprzednich zadań.

  • Strzałka w prawo: obróć o 90 stopni w prawo,

  • Strzałka w lewo: obróć o 90 stopni w lewo,

  • Spacja: przesuń o jedno pole (czyli 40 kroków).

Przetestuj działanie skryptów. Sprawdź, czy możesz obracać duszka (mysz) oraz przesuwać na planszy.

R1GOSkGp7NS2C
Ćwiczenie 11
Zastanów się, jakim blokiem możesz rozpocząć skrypt wciskając jeden z wybranych klawiszy? Możliwe odpowiedzi: 1. Kiedy klawisz ... naciśnięty, 2. Kiedy ten duszek kliknięty, 3. Kiedy kliknięto zieloną flagę
Źródło: GroMar, licencja: CC BY 3.0.

Zwróć uwagę, że duszek - mysz może w tej chwili poruszać się nie tylko po zielonych polach, ale także po czerwonych.

1
Ćwiczenie 12

Wskaż bloki, które można byłoby wykorzystać do zbadania, czy mysz weszła na pole oznaczone kolorem czerwonym. Który z nich będzie najlepiej pasował?

W kategorii Czujniki znajduje się blok dotyka koloru … ?m53f8e5c73a23293b_d811e263dotyka koloru … ? . Dzięki niemu możemy sprawdzić, czy duszek (mysz) dotyka koloru czerwonego, czyli, czy wszedł na zakazane pole (ścianę labiryntu).

Zdjęcie numer 1. Pojedynczy blok akcji.

Na zdjęciu przedstawiono pojedynczy blok algorytmu sprawdzający czy duszek dotyka koloru. W bloku algorytmu znajduje się napis: dotyka koloru. Za napisem wstawiony jest kolor czerwony.

Zdjęcie numer 2. Przykładowy skrypt z zastosowanym blokiem akcji.

Na zdjęciu widać przykładowy skrypt z zastosowanym blokiem sprawdzenia czy duszek dotyka koloru.
W pierwszym bloku programu znajduje się napis: kiedy kliknięto. Za napisem widoczna jest zielona flaga.
W drugim bloku algorytmu widoczny jest napis: idź do x: zero y: zero.
Trzeci blok jest blokiem warunku. W bloku znajduje się napis: powtarzaj aż dotyka koloru. Za słowem koloru znajduje się czerwony kolor. Sformułowanie dotyka koloru czerwonego? Znajduje się w bloku akcji.
W pierwszym wewnętrznym bloku warunku znajduje się napis: przesuń o pięć kroków.
W drugim wewnętrznym bloku znajduje się napis: następny kostium.
W trzecim wewnętrznym bloku warunku znajduje się napis: czekaj zero i trzy dziesiąte sekundy.
W czwartym bloku algorytmy znajduje się napis: powiedz: doszedłem do ściany!
W piątym bloku algorytmu znajduje się napis: zatrzymaj ten skrypt.

1
Ćwiczenie 13

Określ zdarzenia, w których powinniśmy sprawdzić, czy duszek - mysz znajduje się na czerwonym polu?

RRbWnJRJbTyqc
Źródło: GroMar, licencja: CC BY 3.0.
3
Ćwiczenie 14

Zmodyfikuj skrypt wywoływany klawiszem spacja w taki sposób, aby po przesunięciu duszka badał, czy nie znalazł się na czerwonym polu. W tym celu wykorzystaj klocek dotyka koloru … ?m53f8e5c73a23293b_d811e263dotyka koloru … ? oraz klocek jeżeli … tom53f8e5c73a23293b_d811e296jeżeli … to . Połącz je odpowiednio ze sobą. Jeżeli duszek dotyka koloru czerwonego, to zgodnie z planem powinien:

  • wydać dźwięk pop,

  • cofnąć się na poprzednie pole.

R1Xp8QFjIaTu4
Ćwiczenie 14
Zastanów się, w jakiej kategorii znajduje się blok "Jeżeli ... to". Możliwe odpowiedzi: 1. Kontrola, 2. Czujniki, 3. Zdarzenia
Źródło: GroMar, licencja: CC BY 3.0.

Teraz mysz nie może już przebywać na czerwonym polu. Pozostało jeszcze zaprogramować, co ma się stać, gdy dotrze do jabłka.

3
Ćwiczenie 15

Zmodyfikuj skrypt reagujący na naciśnięcie klawisza spacja, w taki sposób, aby sprawdzał po przesunięciu duszka - myszy, czy nie dotyka on duszka - jabłka.

R1IQJisTGlc8Y
Ćwiczenie 15
Zastanów się, jak nazywa się kategoria w której możesz znaleźć bloki zwią Możliwe odpowiedzi: 1. Kontrola, 2. Czujniki, 3. Zdarzenia
Źródło: GroMar, licencja: CC BY 3.0.
Ważne!

Zapisz swój projekt pod kolejną nazwą, np. Labirynt 2.

m53f8e5c73a23293b_d811e245
m53f8e5c73a23293b_d811e263
m53f8e5c73a23293b_d811e296
m53f8e5c73a23293b_d811e306
m53f8e5c73a23293b_d811e315

Dodanie licznika żyć myszy

W celu uatrakcyjnienia gry zmień nieco jej scenariusz. Dodaj licznik żyć dla myszy. Przy starcie wartość licznika ustal na przykład na 3 życia. Każde wejście na ścianę będzie odejmowało jedno życie. Jeżeli licznik osiągnie wartość zero, wówczas gra skończy się przegraną.

Realizacja powyższego scenariusza wymaga przechowania informacji o liczbie żyć, czyli danej. Dane mogą być przechowywane przez program w zmiennych.

W uproszczeniu zmienna to skrytka (szufladka), w której przechowuje się na przykład liczbę. Program może do niej zajrzeć i sprawdzić, jaka jest wartość zmiennej (przechowywana liczba). Wolno także zmieniać tę wartość – na przykład dodać do niej inną liczbę.

1
Ćwiczenie 16

Stwórz zmienną i nazwij ją Licznik żyć. Zmienna powinna być dostępna dla wszystkich duszków.

R19d2h4Mqdnml
Ćwiczenie 16
Możliwe odpowiedzi: 1. Zmienne, 2. Czujniki, 3. Zdarzenia
Źródło: GroMar, licencja: CC BY 3.0.
3
Ćwiczenie 17

Zmodyfikuj skrypty w taki sposób, aby uwzględniony został licznik żyć myszy, który na początku przyjmie wartość, np. 3. Za każdym razem, gdy mysz wejdzie na ścianę, jego wartość zmniejsz o 1. Gdy wartość osiągnie 0, wyświetl napis „Koniec gry” przez 2 sekundy, następnie zatrzymaj wszystkie skrypty.

Rdc5uetTqTit0
Ćwiczenie 17
Który blok/-i pozwala na edycję wartości zmiennej? Zaznacz prawidłową odpowiedź.
Źródło: GroMar, licencja: CC BY 3.0.

Sprawdź podczas testowania zmian, że nawet gdy mysz straci wszystkie życia, można nią dalej poruszać, a gdy dojdzie do jabłka - wyświetli napis „Hurra! Wygrałam!”. Dalsze poruszanie myszy, wynika z działania środowiska Scratch. Jednak możesz oprogramować grę w taki sposób, aby uniemożliwić wygraną, jeśli mysz nie ma więcej żyć, na przykład poprzez ukrycie jabłka lub zatrzymanie skryptu programowo dodając w skrypcie warunek, który nigdy nie będzie spełniony, np. liczba żyć > 0.

2
Ćwiczenie 18

Jeżeli gra zakończy się, ponieważ mysz wykorzystała wszystkie życia, ukryj jabłko. Wykorzystaj w tym celu zmienną Licznik żyć i zmodyfikuj odpowiednio skrypty duszka - jabłka.

Uwaga!

Nie zapomnij pokazać duszka - jabłka za każdym razem, gdy zostanie naciśnięta zielona flaga!

R1B3Auw4R9AZR
Ćwiczenie 18
Zastanów się, w jakiej kategorii znajdują się bloki służące do pisania równań matematycznych. Możliwe odpowiedzi: 1. Wyrażenia, 2. Czujniki, 3. Zdarzenia
Źródło: GroMar, licencja: CC BY 3.0.
Ważne!

Zapisz swój projekt pod kolejną nazwą, np. Labirynt 3.

Ciekawostka

Tworząc zmienne, możesz zdecydować, czy chcesz, aby dostęp do danej zmiennej miały tylko skrypty wybranego duszka, czy też wszystkie skrypty, niezależnie od tego, do którego z duszków zostały przypisane. Jeśli w twoim projekcie dwie postaci poruszałyby się po labiryncie, należy stworzyć dwie zmienne na przykład o nazwie Liczba żyć. Jednak każda z tych zmiennych powinna być przypisana w tym przypadku do konkretnego duszka. Dzięki temu obie zmienne nazywałyby się tak samo, ale przechowywały wartość dostępną tylko dla wybranego duszka.
Jeżeli chcesz, aby duszki mogły sprawdzić, ile żyć pozostało temu drugiemu, należy utworzyć zmienne o różnych nazwach i udostępnić je wszystkim duszkom.
Pamiętaj, żeby nadawać zmiennym takie nazwy, które mówią, co w danej zmiennej jest przechowywane. Unikaj nazw typu Zmienna1, Zmienna2; A, B - zazwyczaj nic one nie znaczą i po pewnym czasie, gdy zajrzysz do skryptów, nie będzie wiadomo do czego były wykorzystane.

Zadania uzupełniające

2
Polecenie 2

Podstawowa wersja gry już działa, jednak sterowanie myszą jest dość trudne. Warto je uprościć, wykorzystując w tym celu na przykład klawisze strzałek w lewo, do góry, w prawo, na dół. Wciśnięcie każdego z tych klawiszy powinno przesunąć duszka w kierunku zgodnym z wciśniętą strzałką.
Zastanów się, jak zmodyfikować skrypt reagujący na naciśnięcie klawisza spacji w taki sposób, aby reagował na naciśnięcie klawisza strzałka w dół, a przed przesunięciem duszka ustawił go w kierunku do dołu.
Popraw skrypt i przetestuj jego działanie.
Następnie zbuduj skrypty, które reagując na klawisze pozostałych strzałek, skierują i przesuną duszka odpowiednio: w górę, w lewo lub w prawo. Pamiętaj, że każdy ze skryptów musi kontrolować, czy w wyniku przesunięcia mysz weszła na czerwone pole lub dotarła do jabłka.
Możesz zduplikować skrypt reagujący na klawisz strzałki w dół i przerobić go tak, by reagował na inny klawisz strzałki.

Uwaga!

Usuń skrypty obracające duszka. Nie będą dłużej potrzebne!

Wskazówka

Duplikowanie skryptów:
Możesz powielić dowolny skrypt i na jego podstawie stworzyć nowy, wprowadzając odpowiednie zmiany. W tym celu wykonaj poniższe czynności.

  • Kliknij na pierwszym klocku skryptu od góry prawym klawiszem myszy.

  • Z menu wybierz opcję duplikuj. Przesuń kursor myszy - będzie się przesuwał razem z powielonym skryptem.

  • Kliknij lewym klawiszem myszy w miejscu, gdzie będzie znajdował się cały skopiowany skrypt.

2
Polecenie 3

Dodaj drugi kostium dla duszka - jabłka, który będzie wyglądał jak ugryzione jabłko. Następnie dodaj skrypt, który cały czas będzie badał, czy jabłko nie dotyka myszy. Jeżeli dotyka, to kostium zostanie zmieniony na ogryzek, a np. po 1 sekundzie duszek zostanie ukryty.

Uwaga!

Nie zapomnij ustawić kostiumu duszka - jabłka na całe jabłko oraz pokazać duszka za każdym razem, gdy zostanie wciśnięta zielona flaga!

1
Polecenie 4

Dodaj drugie tło z innym labiryntem. Gdy gracz przejdzie przez pierwszy labirynt, zmień tło na następne. Pamiętaj, aby w tym przypadku ponownie ustawić wszystkie duszki na pozycjach startowych. Pozycje te mogą być inne niż na pierwszej planszy.

1
Polecenie 5

Podobnie jak został dodany licznik żyć, można wprowadzić zdobywanie punktów. Punkty dodajemy na przykład za liczbę zebranych jabłek. W tym wypadku warto dodać kilka dodatkowych jabłek na planszy. Gra może kończyć się zwycięstwem, gdy gracz zbierze wszystkie jabłka.

2
Polecenie 6

Zrealizuj własne pomysły, co ma się stać, gdy mysz wejdzie na ścianę lub dotrze do jabłka. Zmodyfikuj projekt zgodnie z nimi.

3
Polecenie 7

Dodaj do gry nowe duszki, które będą przeszkadzały myszy dotrzeć do jabłka. Mogą one poruszać się w określonych miejscach labiryntu, przenikać przez ściany lub działać tak, jak to zaplanujesz. Zastanów się również, w jaki sposób mysz powinna reagować na spotkanie z nimi, czy na przykład zakończyć grę, czy wrócić do punktu startowego? A może tylko stracić punkty lub zareagować w inny sposób?

2
Polecenie 8

Dodaj plansze (nowe tła sceny), które pokazane zostaną, gdy gra się zakończy - zwycięstwem lub przegraną myszy.

klawiatura_strzalki
klawiatura_wasd