Przejdź do głównej zawartości

Scratch - Kulkoklikacz

Do biegu, gotowi, start! Komunikaty w programie Scratch

W czasie lekcji utworzysz grę „Kulkoklikacz", która będzie polegała na klikaniu w kulkę pojawiającą się w różnych miejscach sceny. 

Gdy użytkownik kliknie w kulkę, zdobędzie 1 punkt. Wygra, jeśli uzyska 15 punktów w czasie krótszym niż 20 sekund. Przy tworzeniu projektu wykorzystasz komunikaty. Komunikat w programie Scratch mogą nadać dowolny duszek lub tło. Podobnie dowolny duszek (nawet ten sam) lub tło mogą odbierać komunikaty i reagować na nie uruchomieniem skryptu rozpoczynającego się blokiem z napisem „kiedy otrzymam".

W trakcie wykonywania zadania:
1. przygotujesz projekt gry,
2. utworzysz skrypt, który uruchomi się po kliknięciu w kulkę,
3. zaprogramujesz początek gry i odmierzanie czasu,
4. zaprogramujesz wyświetlenie informacji o wygranej lub przegranej.

INSTRUKCJA:

1. Zaplanuj grę

Na początku pracy nad grą komputerową należy ją dokładnie zaplanować, czyli opisać jej zasady, działanie oraz poszczególne etapy. Do etapów zaliczy my sposób rozpoczęcia gry, jej przebieg oraz zakończenie, które uwzględnia informację dla gracza o wygranej lub przegranej. Możesz to zrobić na kartce albo na komputerze: w edytorze tekstu lub programie do edycji grafiki.

Zasady oraz przebieg gry „Kulkoklikacz” przedstawiono poniżej:

ZASADY I DZIAŁANIE GRY:


ROZPOCZĘCIE I PRZEBIEG GRY:


ZAKOŃCZENIE:



2. Wejdź na stronę scratch

https://scratch.mit.edu/ 

3. Następnie otwórz nowy projekt


4. Utworzenie skryptu, który uruchomi się po kliknięciu w kulkę

Dodaj do projektu duszka kulkę z biblioteki programu: 

Znajdź te 4 bloki:

1) Kiedy ten duszek kliknięty - aby zaprogramować co stanie się kiedy użytkownik na niego kliknie
2) Idź do x: () y: () - do określenia współrzędnych
Pamiętaj, że każdy punkt sceny można opisać za pomocą dwóch liczb: x i y. Na środku sceny wartości x i y wynoszą 0. 

W prawą stronę sceny wartość x rośnie i może osiągnąć maksymalnie 240. W lewą stronę wartość x maleje i może osiągnąć -240. W górę sceny wartość y rośnie do maksymalnie 180, a w dół wartość y maleje do -180. Zmiany wartości liczb x i y w zależności od położenia punktu na scenie pokazuje rysunek:



Zatem:
3) Losuj liczbę od 1 do 10 - aby zaprogramować losowość lokalizacji -> tu zamiast 1 i 10 wpisujemy wartości dla X. 
4) Drugi blok Losuj liczbę od 1 do 10 - aby zaprogramować losowość lokalizacji -> tu zamiast 1 i 10 wpisujemy wartości dla X. 

Przy określaniu obszaru, w którym ma pojawiać się kulka, nie wpisuj minimalnych i maksymalnych wartości liczb x i y, a liczby odpowiednio większe lub mniejsze (na przykład zamiast -240 wpisz -200, a zamiast 180 wpisz 140). Dzięki temu kulka nie będzie wystawała poza krawędź sceny. 

Zatem dla wartości dla X wpiszmy -200 i 200, a dla wartości Y w zielonym bloku wpiszmy -140 i 140.


Połącz żółty blok "Kiedy ten duszek kliknięty" z niebieskim "Idź do x: () y: ()".

Aby wylosować miejsce gdzie kulka się pojawi zamiast liczb w niebieskim "Idź do x: () y: ()" wstaw zielone bloki z "Losuj liczbę...":





Sprawdź działanie skryptu. Kliknięcie kulki powinno też spowodować zwiększenie liczby punktów o 1. Do zliczania punktów potrzebna jest zmienna.

5. Stwórzmy zmienną

Aby ją utworzyć, przejdź do kategorii Zmienne i kliknij przycisk Utwórz zmienną:

Nadaj jej nazwę „Liczba punktów”. W oknie tworzenia nowej zmiennej zaznacz opcję „Dla wszystkich duszków”:



Dodaj do skryptu blok z napisem „Zmień Liczba punktów” i wpisz w nim wartość 1:


Przetestuj działanie tego skryptu. Klikaj w kulkę i sprawdzaj, czy zmienia ona swoje położenie i czy każde kliknięcie powoduje zwiększenie liczby punktów.

Kulka powinna zmieniać swoje położenie tylko wtedy, gdy liczba punktów jest mniejsza niż 15 lub gdy nie minęło 20 sekund. Najpierw zajmij się pierwszym przypadkiem. 

6. Spraw, aby kulka zmieniała położenie tylko wtedy, gdy liczba punktów jest mniejsza niż 15

Rozbij poprzedni skrypt:


Niebiesko zielony skopiuj. Następnie na nowo połącz: żółty -> niebiesko zielony -> pomarańczowy.

Dodaj do skryptu (pod pomarańczowym) blok warunkowy z napisami „jeżeli”, „to” i „w przeciwnym razie”:


Jako warunku użyj w nim wyrażenia „Liczba punktów” < 15. Jeżeli warunek będzie spełniony, wykona się instrukcja przenosząca kulkę w losowe miejsce sceny:


Dodaj połączony blok do żółtego bloku Jeżeli.  Skopiuj niebiesko zielony blok i wstaw go w 2 miejsca. 

1) Pod żółty blok zaczynający grę a pomarańczowym

2) Pod blok "jeżeli":


W przeciwnym razie zostanie nadany komunikat „Wygrana”. Aby go utworzyć, dodaj blok z napisem „nadaj komunikat” z kategorii Zdarzenia:



 Rozwiń listę dostępną w tym bloku i utwórz komunikat „Wygrana”:


Dodaj go do "W przeciwnym razie": 

 Na końcu skryptu dodaj blok z napisem „zatrzymaj” i wybierz w nim opcję „ten skrypt”:


Podsumowując ten krok:

Jeżeli liczba zdobytych punktów jest mniejsza niż 15 kulka pojawi się w kolejnym miejscu - czyli gra będzie kontynuowana:



Natomiast jeżeli liczba zdobytych punktów jest większa niż 15 pojawia się komunikat "Wygrana":


i gra zostanie zatrzymana.

Przetestuj działanie skryptu. Każde kliknięcie w kulkę spowoduje zmianę jej położenia i zwiększenie liczby punktów o 1. 

Po zdobyciu przez gracza 15 punktów zostanie nadany komunikat „Wygrana”. Na ten komunikat może zareagować zarówno sam duszek kulka, jak i inne duszki oraz tło.

7. Dodaj nowy skrypt.

Utwórz dla duszka kulki drugi skrypt, który rozpocznie się od bloku „kiedy otrzymam Wygrana" z kategorii Zdarzenia:

 


 Ten skrypt powinien jedynie spowodować ukrycie duszka kulki. Dodajemy więc blok Ukryj:


dodaj "Ukryj" do żółtego bloku "kiedy otrzymam Wygrana". A na koniec dodaj Zatrzymaj ten skrypt:


8.Początek gry i odliczanie czasu

Gra uruchomi się po naciśnięciu przycisku z zieloną flagą. Na początku gry kulka powinna pojawić się w losowym miejscu sceny. Powinno również rozpocząć się odliczanie czasu.

Tworzymy zatem kolejny skrypt dla kulki. Gra ma uruchomić się po naciśnięciu przycisku z zieloną flagą:


Na początku gry kulka powinna pojawić się w losowym miejscu sceny. Dodajemy więc do żółtego bloku niebiesko zielony z poprzedniego skryptu (możesz go skopiować): 


oraz bloku z napisem „pokaż” z kategorii Wygląd:


Aby na początku każdej rozgrywki zmiennaLiczba punktówmiała wartość zero, dodaj blok (po fioletowym pokaż) z napisem „ustaw Liczba_punktów na 0”:


9. Utwórz teraz zmienną „Czas” (tak jak poprzednio "Liczba punktów":



 i rozpocznij następnie budowanie skryptu dla duszka kota. Kliknij na niego:


 Dodajemy do niego kiedy kliknięto zieloną flagę (aby skrypt zaczął się od zielonej flagi):



Po uruchomieniu gry duszek ma być ukryty - dodajemy więc blok "Ukryj":



, a wartość zmiennej „Czas” zostanie ustawiona na 20 sekund:


Pomarańczowy blok Czas dodaj do fioletowego.

10. Po upływie sekundy wartość zmiennej „Czas” zmniejsza się o 1:


Zmniejszanie wartości zmiennej „Czas” powinno się powtarzać, aż osiągnie ona wartość zero. Wykorzystaj więc blok z napisem „powtarzaj aż” z kategorii Kontrola:



 Działanie bloku polega na tym, że program powtarza wykonywanie umieszczonych w nim poleceń, dopóki nie zostanie spełniony warunek podany po słowie „”.

11. Połączmy nasze bloki.

Do pomarańczowego ustaw Czas na 20 dodaj blok Powtarzaj aż. Do środka powtarzaj aż dodaj czekaj 1 sekund razem z zmień Czas o -1:


Musimy dodać warunek do powtarzaj aż.


12. Warunek do powtarzaj aż:

Warunek ma być powtarzany, nie upłynie czas. Robimy zatem zielony blok () = 50 i dodajemy tam zmienną Czas:


50 zaś zmieniamy na koniec czasu gry, czyli 0 sekund - jak czas się kończy KONIEC GRY.




13. Co w sytuacji przegranej?

Mamy więc skrypt:

Po rozpoczęciu gry czas gry zaczyna być liczony od 20 do 0. Powtarza się polecenie, które spełnia warunek - w momencie, aż czas 


Dalej ustalamy co ma się powtarzać, do momentu aż czas nie będzie =0:


Idąc dalej musimy ustalić, aby duszek kulka po otrzymaniu komunikatu „Przegrana”, podobnie jak w przypadku komunikatu „Wygrana”, powinien zostać ukryty.  Przejdź do kulki.

Skopiuj skrypt duszka kulki zaczynający się blokiem z napisem „kiedy otrzymam Wygrana":


 rozwiń w tym bloku listę dostępnych komunikatów i wybierz„ Nowa wiadomość” i wpisz Przegrana:


14. Poinformowanie użytkownika o wygranej lub przegranej

Na zakończenie gracz powinien otrzymać informację zwrotną o tym, czy wygrał czy przegrał. W grze „Kulkoklikacz” o wygranej lub przegranej będzie informował duszek kot. Posłużą do tego skrypty nadające komunikaty „Przegrana” i „Wygrana”. 

Teraz przygotujesz skrypty dla duszka kota, które określą jego reakcje na te komunikaty.

Jeśli duszek kot otrzyma komunikat „Przegrana”, powinien pojawić się na scenie i poinformować użytkownika o przegranej. Aby duszek pojawił się na scenie, użyj bloku z napisem „pokaż”. Znajdziesz go w kategorii Wygląd:



Aby wyświetlić informacje o przegranej, użyj bloku z napisami „powiedz”, „przez” i „sekund” również z kategorii Wygląd:



 wpisz w nim komunikat o przegranej i czas, przez jaki ma on być widoczny:

 Na końcu skryptu dodaj blok zatrzymujący działanie wszystkich uruchomionych skryptów:


Po otrzymaniu komunikatu „Wygrana” duszek kot powinien zatrzymać odliczanie czasu, a następnie wyświetlić informację o wygranej użytkownika. Aby zakończyć odmierzanie czasu, trzeba zatrzymać odpowiedni skrypt.

W tym celu użyj bloku z napisem „zatrzymaj” - wybierz na nim opcję „inne skrypty duszka”:



Aby wyświetlić graczowi informację o wygranej, wykorzystaj - podobnie jak w poprzednim skrypcie - blok z napisami „powiedz", „przez” i „sekund” z kategorii Wygląd



Na końcu zatrzymaj działanie wszystkich skryptów uruchomionych w projekcie:

Przetestuj działanie gry. Jeśli nie działa zgodnie z założeniami, odszukaj i popraw błędy.

PS mały błąd: do skryptu:



dodaj:


 

Pracę zapisz w swoim folderze pod nazwą Kulkoklikacz Imię Nazwisko Klasa:

np. Kulkoklikacz Anna Nowak 6A


Checklista na ocenę 5:

Pamiętaj, każdy brak jakiegoś punktu może skutkować obniżeniem oceny!!!

Projekt ma zawierać dwa duszki: kulkę, którego klikamy ORAZ duszka np. kota, który będzie ogłaszać wynik
✅Gra rozpoczyna się po naciśnięciu zielonej flagi.
✅Gra polega na klikaniu kulki - po kliknięciu pojawia się ona w nowym LOSOWYM miejscu.
Mają być widoczne dwie zmienne: 1) Punkty oraz 2) Czas
Na początku gry CZAS ma wynosić 20 sekund i co sekundę gry lecieć w dół (20, 19, 18...),  do 0.
Na początku gry PUNKTY mają wynosić 0 i co kliknięcie w kulkę lecieć w górę (0, 1, 2, 3....), AŻ do 15 punktów - TO MAKS!
✅Gra ma trwać, aż gracz zdobędzie 15 punktów LUB gdy minie czas (20 sekund).
W zależności o wyniku gry (wygranej LUB przegranej) gracz ma zostać POINFORMOWANY O TYM - duszek np. kot ma ogłosić wynik.

✅WYGRANA: to zdobyte 15 punktów w mniej niż 20 sekund oraz komunikat "Gratulacje! Wygrywasz!"
✅PRZEGRANA: to zdobyte MNIEJ NIŻ 15 punktów w ciągu 20 sekund - gdy odliczanie wynosi "0"  pojawia się komunikat "Niestety przegrywasz!"

Checklista na ocenę 6:

to co na ocenę 5 ORAZ:

Dodaj tło 
Zmodyfikuj duszki: kulkę oraz kota np. dorysuj im coś
Odpowiednio zapisz plik (Kulkoklikacz - Imię Nazwisko Klasa.sb3) oraz napisz temat maila (Kulkoklikacz - Imię Nazwisko Klasa)

Zapisz zadanie i wyślij:

Zapisz plik w folderze 6a / 6b (w zależności od klasy) pod nazwą "Kulkoklikacz - Anna Nowak 6A.sb3" np.

Kulkoklikacz - Anna Nowak 6A.sb3

UWAGA! Pliki w scratch często zapisują się w POBRANYCH. Jak zrobić to poprawnie?

Wybieramy PLIK na górze menu:



Następnie klikamy zapisz:



TERAZ SPÓJRZ W PRAWO, zapewne zobaczysz taki komunikat:


JEŻELI MASZ ZWYKŁE OKIENKO ZAPISU:


przejdź na dół INSTRUKCJI do wysyłki :)

TO OZNACZA, ŻE PLIK SIĘ ZAPISAŁ. Jeżeli okienko nam zniknęło wejdźmy w 3 kropki:


a potem w POBRANE:

OKIENKO powinno wrócić. Teraz przy naszym pliku (czyli najnowszym, na samej górze klikamy na symbol folderu obok):


Dlaczego? Otworzy nam to folder, w którym zapisał się plik. Jak widać zapisał się w POBRANYCH:


Trzeba go przenieść:

Klikamy na plik prawym przyciskiem myszy i wybieramy WYTNIJ:

Na niektórych komputerach opcja ta będzie niżej na liście.

Następnie przejdźmy do folderu 6A lub 6B:

Klikamy prawym przyciskiem myszy gdzieś NA TLE (NIE NA INNE PLIKI) w folderze, a następnie WKLEJ:


Teraz zmieniamy nazwę pliku: klikamy prawym przyciskiem myszy na plik, a następnie zmień nazwę:


UWAGA!!!! NIE USUWAMY ROZSZERZENIA PLIKU SB3
, TYLKO TO CO PRZED NIM:



Nazywamy plik np. Kulkoklikacz - Imię Nazwisko klasa.sb3
 


Wyślij PLIK na adres: kibic.zadania@gmail.com




TEMAT: Kulkoklikacz - Imię Nazwisko klasa




Dołącz swój plik: