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.

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 myszka (steruje nią gracz). Jej zadanie polega na pokonaniu labiryntu i zdobyciu jabłka. Sceneria gry będzie przypominać szachownicę. Gracz może przesunąć myszkę za każdym razem o jedno pole oraz zmienić kierunek, w którym myszka 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 myszka może się poruszać, a czerwony - ściany, czyli pola, niedostępne dla myszki. Gracz wygrywa, gdy doprowadzi myszkę do jabłka ukrytego w labiryncie.

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

Zastanów się, czym powinno być jabłko, które ma zdobyć myszka. Rysunkiem, który wykonasz na scenie, drugim duszkiem – a może masz inne pomysły? Pomyśl i przedyskutuj z kolegami oraz nauczycielem, co będzie najlepszym rozwiązaniem.

Ćwiczenie 2

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. Plik z planszą możesz pobrać poniżej.

R4EFumXKQbL3r1
Plansza do pobrania
Źródło: nn, licencja: CC BY 3.0.
Ćwiczenie 3

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

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 będziesz mógł wrócić do dowolnej, wcześniejszej wersji.

m53f8e5c73a23293b_d5e180

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 powinieneś określić, kiedy i w jaki sposób komputer ma reagować, aby gra działała dokładnie tak, jak chcesz.

Ćwiczenie 4

Zastanów się, 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ł myszką),

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

Zapisz przemyślenia na kartce, następnie przedyskutuj je z koleżankami, kolegami i nauczycielem.

Ćwiczenie 5

Do ustawienia duszków myszki oraz jabłka na pozycjach startowych możesz wykorzystać znany ci klocek idź do x: … y: …m53f8e5c73a23293b_d811e140idź do x: … y: … . Zastanów się i 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ź.

RSoduYKQv2A2w1
Źródło: Janusz Wierzbicki, licencja: CC BY 3.0.
RNhNhpyImHq9P1
Interaktywne zadanie
Źródło: Janusz Wierzbicki <janusz.wierzbicki@oeiizk.waw.pl>, licencja: CC BY 3.0.
Ćwiczenie 6
R8R6FUHcRU2Ni1
Interaktywne zadanie
Źródło: Janusz Wierzbicki <janek@oeiizk.waw.pl>, licencja: CC BY 3.0.
Ćwiczenie 7
RMAmeyVF69xxT1
Interaktywne zadanie
Źródło: Janusz Wierzbicki <janek@oeiizk.waw.pl>, licencja: CC BY 3.0.
Ćwiczenie 8

Zastanów się, co ma się stać, gdy myszka wejdzie na czerwone pole. Zanotuj swoje pomysły, a następnie przedyskutuj je z nauczycielem, z koleżankami i kolegami.

Ćwiczenie 9

Zastanów się, co ma się stać, gdy myszka dotrze do jabłka. Zanotuj swoje pomysły, a następnie przedyskutuj je z nauczycielem, koleżankami i kolegami.

Ćwiczenie 10

Zastanów się, jakie klawisze wykorzystasz do sterowania duszkiem - myszką. Zanotuj swoje pomysły, a następnie przedyskutuj je z nauczycielem, koleżankami i kolegami.

m53f8e5c73a23293b_d811e140
m53f8e5c73a23293b_d5e401

Tworzenie skryptów duszków

Wykonując poprzednie zadania, ustaliłeś następujące reguły dotyczące gry:

  1. Czynności startowe

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

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

  1. 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).

  1. Zdarzenia

  • Jeśli myszka zostanie wprowadzona na czerwone pole:

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

    • cofnie się na poprzednie pole.

  • Jeśli myszka 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 myszka 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ń.

Ćwiczenie 11

Stwórz skrypt dla myszki, który po wciśnięciu zielonej flagi ustawi duszka - myszkę na pozycji startowej. Wykorzystaj obliczenia z poprzednich zadań. Nie zapomnij zakończyć działania tego skryptu. Przetestuj działanie skryptu i sprawdź, czy duszek znalazł się na pozycji startowej po wciśnięciu zielonej flagi.

Ćwiczenie 12

Stwórz skrypt dla jabłka, który po wciśnięciu zielonej flagi ustawi duszka - jabłko na wybranym polu w labiryncie. Wykorzystaj obliczenia z poprzednich zadań. Przetestuj działanie skryptu i sprawdź, czy duszek znalazł się na wybranym polu po wciśnięciu zielonej flagi.

Ćwiczenie 13

Stwórz skrypty sterujące duszkiem - myszką 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 - myszkę oraz przesuwać na planszy.

Wskazówka

Każdy ze skryptów zacznij od klocka kiedy klawisz … naciśniętym53f8e5c73a23293b_d811e245kiedy klawisz … naciśnięty. Pamiętaj również, by każdy ze skryptów prawidłowo zakończyć.

Zauważ, że duszek - myszka może w tej chwili poruszać się nie tylko po zielonych polach, ale także po czerwonych.

Ćwiczenie 14

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

Ćwiczenie 15

Zastanów się, kiedy powinniśmy sprawdzić, czy duszek - myszka znajduje się na czerwonym polu? Sprawdź, czy dobrze myślisz.

Ćwiczenie 16

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 bird,

  • cofnąć się na poprzednie pole.

Wskazówka

W celu cofnięcia duszka możesz wykorzystać klocek przesuń o … krokówm53f8e5c73a23293b_d811e306przesuń o … kroków, w którym wpiszesz wartość ujemną. Będzie ona oznaczała ruch do tyłu. Duszek powinien zostać cofnięty dokładnie tyle kroków, o ile przesunął się do przodu. Po zmodyfikowaniu skryptu, przetestuj jego działanie - duszek nie może wejść na czerwone pole.
Przepis na działanie skryptu powinien wyglądać w następujący sposób.
Kiedy klawisz spacja naciśnięty:

  1. Przesuń o 40 kroków.

  2. Jeżeli dotyka koloru czerwonego:

    1. Zagraj dźwięk bird.

    2. Przesuń o -40 kroków.

  3. Zakończ ten skrypt.

Uwaga:
Żeby wybrać dźwięk bird na liście klocka Zagraj dźwięk …m53f8e5c73a23293b_d811e315Zagraj dźwięk … , wcześniej musisz go odszukać w galerii dźwięków i dodać w zakładce Dźwięki.

Uwaga!

Obejrzyj film ilustrujący, w jaki sposób ustawić prawidłowy kolor dla klocka dotyka koloru … ?m53f8e5c73a23293b_d811e263dotyka koloru … ?

R4yIdzJb6oV7j1
Film: Ustawienie właściwego koloru

Teraz myszka nie może już wejść na czerwone pole. Pozostało jeszcze zaprogramować, co ma się stać, gdy dotrze do jabłka.

Ćwiczenie 17

Zmodyfikuj skrypt reagujący na naciśnięcie klawisza spacja, w taki sposób, aby sprawdzał po przesunięciu duszka - myszki, czy nie dotyka on duszka - jabłka. Zgodnie z ustaleniami, jeśli dotyka, to: wyświetla napis w komiksowym dymku: „Hura! Wygrałam!” i kończy działanie wszystkich skryptów.

Ważne!

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

m53f8e5c73a23293b_d811e245
m53f8e5c73a23293b_d811e263
m53f8e5c73a23293b_d811e296
m53f8e5c73a23293b_d811e306
m53f8e5c73a23293b_d811e315
m53f8e5c73a23293b_d5e749

Dodanie licznika żyć myszki

W celu uatrakcyjnienia gry zmień nieco jej scenariusz. Dodaj licznik żyć dla myszki. 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 chowa 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ę.

Ćwiczenie 18

Stwórz zmienną i nazwij ją Licznik żyć. Żeby stworzyć zmienną, należy przejść do kategorii Dane. Zmienna powinna być dostępna dla wszystkich duszków. Skorzystaj, w razie potrzeby, z zamieszczonego poniżej filmu, ilustrującego dodawanie nowej zmiennej.

R1LFO60Xj4ZVU1
Film: Tworzenie zmiennej
Ćwiczenie 19

Zmodyfikuj skrypty w taki sposób, aby uwzględniony został licznik żyć myszki, który na początku przyjmie wartość, np. 3. Za każdym razem, gdy myszka 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.

Wskazówka

Dodaj polecenie, które ustawi po kliknięciu zielonej flagi wartość licznika np. na 3 życia.
Następnie, w miejscu, w którym badasz, czy duszek nie wszedł na ścianę (czerwone pole), dodaj polecenia:

  1. zmniejszające wartość zmiennej Licznik żyć o 1,

  2. jeżeli zmienna Licznik żyć jest równa 0,

  3. pokazujące komiksowy dymek z komunikatem „Koniec gry :(„ przez 2 sekundy,

  4. zatrzymujące wszystkie skrypty.

W razie potrzeby, przypomnij sobie film z zadania 13, który pokazuje, jak tworzy się warunek porównujący dwie wartości dla klocka jeżeli … tom53f8e5c73a23293b_d811e296jeżeli … to.

Sprawdź podczas testowania zmian, że nawet gdy myszka straci wszystkie życia, można nią dalej poruszać, a gdy dojdzie do jabłka - wyświetli napis „Hura! Wygrałam!” lub „Hura! Wygrałem!”. Dalsze poruszanie myszki, wynika z działania środowiska Scratch. Jednak możesz oprogramować grę w taki sposób, aby uniemożliwić wygraną, jeśli myszka nie ma więcej żyć, na przykład ukryć jabłko.

Ćwiczenie 20

Jeżeli gra zakończy się, ponieważ myszka 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!

Wskazówka

Duszek - jabłko powinien cały czas sprawdzać, czy zmienna Licznik żyć jest równa 0. Jeśli jest równa, wówczas powinien zostać ukryty.

Ważne!

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

Wskazówka

Więcej na temat zmiennych
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 przyypadku 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ędziesz wiedział, do czego je wykorzystałeś.

m53f8e5c73a23293b_d5e872

Zadania uzupełniające

Ćwiczenie 21

Podstawowa wersja gry już działa, jednak sterowanie myszką 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 myszka 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

Musisz zmienić klawisz, na który ma reagować skrypt. Zamiast spacji wybierz strzałkę w prawo. Następnie dodaj jako drugi od góry klocek, który skieruje duszka na dół.

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 widoczny cały skopiowany skrypt.

Ćwiczenie 22

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 myszki. 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!

Ćwiczenie 23

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.

Ćwiczenie 24

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.

Wskazówka

Jeśli wprowadzisz kilka jabłek, musisz badać oddzielnie, czy myszka nie dotyka któregoś z nich. W tym przypadku prościej będzie zbadać, czy myszka nie dotyka koloru, który znajduje się na jabłkach. Zwróć uwagę, że kolor czerwony znajdujący się na kostiumie jabłka jest inny niż kolor czerwonych pól planszy.

Ćwiczenie 25

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

Ćwiczenie 26

Spróbuj dodać do gry nowe duszki, które będą przeszkadzały myszce 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 myszka 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?

Ćwiczenie 27

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