Budowanie i modyfikowanie skryptów, tworzenie własnych bloków, stosowanie pętli w Scratch
Źródło: licencja: CC BY-SA 3.0. CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=86915.
Rysowanie gwiazd na scenie
W tym rozdziale napiszemy projekt, w którym scenę podzielimy na dwie części. W górnej części sceny (dla liczb nieujemnych) duszek (ukryty) narysuje gwiazdy. W dolnej, drugi duszek (lub więcej duszków, jeśli zechcesz) będzie działał według twojego własnego scenariusza. Obejrzyj poniższy film prezentujący ten projekt.
R942tfjh3Ol3Y
Animacja przedstawia tańczącego robota na księżycu. Podczas jego tańca na niebie pojawiają się gwiazdy.
Animacja przedstawia tańczącego robota na księżycu. Podczas jego tańca na niebie pojawiają się gwiazdy.
Animacja przedstawia tańczącego robota na księżycu.
Animacja przedstawia tańczącego robota na księżycu.
Źródło: GroMar, licencja: CC BY 3.0.
Animacja przedstawia tańczącego robota na księżycu. Podczas jego tańca na niebie pojawiają się gwiazdy.
W naszym projekcie wszystkie gwiazdy będą ośmioramienne. W matematyce taką figurę nazywa się ośmiokątem foremnym gwiaździstym. Powstaje ona z połączenia co trzeciego wierzchołka ośmiokąta foremnego. Kąt wewnętrzny każdego ramienia tej gwiazdy ma .
R11rXyp55ZXHU
Zrzut ekranu przedstawia gwiazdę ośmioramienną obok której znajduje się duszek z programu Scratch - karykaturalna postać kota.
Gwiazda ośmioramienna.
Źródło: nn, licencja: CC BY 3.0.
Ćwiczenie 1
Zapisz w punktach algorytm rysowania gwiazdy ośmioramiennej.
R1EJJyRVlJn6E
Źródło: GroMar, licencja: CC BY 3.0.
RsX1rBpv1VUdW
Zrzut ekranu przedstawia dwa odcinki. Jeden poziomy z lewej do prawej strony oraz drugi z lewego dolnego rogu i kończący się w prawym górnym. Odcinki łączą się w prawym górnym rogu. Dodatkowo zaznaczony jest kąt rozwarty o mierze 135 stopni, który powstał z przedłużenia poziomego odcinka oraz ukośnego.
Kąt zewnętrzny gwiazdy ośmioramiennej.
Źródło: nn, licencja: CC BY 3.0.
Zwróć uwagę na rysunek pokazujący, o jaki kąt duszek ma się obrócić. Nie podajesz wewnętrznej wartości kąta, jaki tworzą dwa boki gwiazdy, tylko kąt zewnętrzny. Jest to wartość, o jaką duszek ma się obrócić w wybranym kierunku.
Przykładowy algorytm:
Przyłóż pisak.
Powtórz razy: 2.1. Przesuń o długość ramienia gwiazdy. 2.2. Obróć się w prawo o stopni.
Podnieś pisak.
Zakończ działanie skryptu.
Zadaniem ukrytego duszka będzie narysowanie kilku lub kilkunastu gwiazd losowo położonych na niebieskim tle. Dobierz długość ramienia gwiazdy i zastanów się, z jakiego zakresu powinieneś losować liczby i określające położenie punktu, z którego duszek rozpoczyna rysowanie gwiazdy. Pamiętaj również o odpowiednim ustawieniu kierunku duszka.
Ćwiczenie 2
Zapisz w punktach algorytm rysowania gwiazd na niebieskiej części tła sceny.
RPt8kowNnZN8e
Źródło: GroMar, licencja: CC BY 3.0.
Na początku ustawmy duszka tak, aby poruszał się w prawą stronę. Zauważ, że po narysowaniu gwiazdy nie zmieni on tego ustawienia. Aby gwiazdy mieściły się na całej szerokości sceny liczba może być wylosowana z zakresu od do liczby pomniejszonej o długość ramienia gwiazdy. Całkowita wysokość sceny wynosi (od do ), więc liczba musi być dodatnia, ponieważ chcemy rysować po jej górnej części. Dodatkowo musimy dobrać ją tak, żeby cała gwiazda mieściła się na niebieskim tle. Można przyjąć pewien margines od krawędzi i losować współrzędną w zakresie od długości ramienia gwiazdy do minus ta długość. Na przykład, dla długości ramienia gwiazdy wynoszącej , można losować liczbę w zakresie od do , a w zakresie od do .
Poniżej znajduje się przykładowa lista kroków dla długości ramienia równej 30. Twój algorytm może wyglądać inaczej, jeżeli przyjmiesz inną wielkość gwiazdy.
Wyczyść scenę.
Ustaw grubość pisaka (np. ).
Ustaw kolor pisaka (np. żółty).
Ustaw kierunek duszka na 90.
Podnieś pisak.
Potwórz razy: 6.1. Wylosuj x z przedziału od -240 do 210. 6.2. Wylosuj y z przedziału od 30 do 150. 6.3. Idź do pozycji x, y. 6.4. Przyłóż pisak. 6.5. Narysuj gwiazdę. 6.6. Podnieś pisak.
Zakończ działanie skryptu.
Tworzymy własny blok
W ćwiczeniu 2 opisując algorytm realizujący rysowanie gwiazd na niebieskim tle założyliśmy, że umiemy narysować pojedynczą gwiazdę w określonym miejscu sceny. Innymi słowy, założyliśmy, że mamy do dyspozycji blok rysujący taką gwiazdę. Wśród dziesięciu kategorii bloków znajdziesz kategorię Moje bloki, a w niej przycisk Utwórz blok. Dzięki niemu utworzymy własny blok. Obejrzyj na filmie, jak to zrobić.
Utwórz nowy blok Gwiazda rysujący gwiazdę ośmioramienną.
Jeżeli masz problem ze stworzeniem własnego bloku, obejrzyj film z instrukcją zamieszczony powyżej.
Przykładowy skrypt:
R10b1xBcp6IxV
Zrzut ekranu przedstawia skrypt dodający nowy blok gwiazda, który rysuje gwiazdę ośmioramienną według algorytmu z poprzedniego podrozdziału. Blok: Definiuj gwiazda. Pierwszy wiersz: Przyłóż pisak. Drugi wiersz: Powtórz osiem razy. Trzeci wiersz: Przesuń o trzydzieści kroków. Czwarty wiersz: Obróć się w prawo o sto trzydzieści pięć stopni. Szósty wiersz: Podnieś pisak. Siódmy wiersz: Zatrzymaj ten skrypt.
Zrzut ekranu przedstawia skrypt dodający nowy blok gwiazda.
Źródło: GroMar, licencja: CC BY 3.0.
R1C9mmgqYMEjq
Ćwiczenie 3
W jakiej kategorii znajduje się opcja umożliwiająca utworzenie nowego bloku? Zaznacz prawidłową odpowiedź.
Źródło: GroMar, licencja: CC BY 3.0.
Ćwiczenie 4
Napisz skrypt, który po kliknięciu w zieloną flagę rysuje kilka lub kilkanaście gwiazd losowo rozmieszczonych na niebieskim tle. Tło zaprojektuj bezpośrednio w Scratch lub wykorzystaj do tego dowolny program graficzny. Skorzystaj z nowo utworzonego bloku rysującego pojedynczą gwiazdę z poprzedniego ćwiczenia.
Scena w programie Scratch ma wymiary 480 (szerokość) na 360 (wysokość). Pamiętaj, że gwiazdy mają znajdować się w jej górnej części. Weź pod uwagę również długość ramienia gwiazdy. Aby cała gwiazda była widoczna na niebieskim tle, zaleca się zachowanie pewnego marginesu od krawędzi.
Jako tło możesz użyć tła z biblioteki Scratch - MoonmoonMoon. Niebo możesz powiększyć, np. poprzez dorysowanie granatowego prostokąta.
Aby dodać nowe tło do sceny z galerii obrazów Scratch, kliknij na niebieski przycisk w prawym dolnym rogu z ikoną obrazu z plusemprzycisk_dodaj_tloikoną obrazu z plusem. Następnie wybierz opcję Wybierz tło z listy dostępnych opcji.
R1GXCORa1Jj2W
Na ilustracji widoczny jest fragment okna programu Scratch. Widoczny jest niebieski przycisk dodawania tła z rozwiniętą listą dostępnych opcji. Wybrana jest opcja "Wybierz tło" będąca pierwszą opcją od dołu.
Fragment okna Scratch z przyciskiem do dodawania nowego tła.
Źródło: GroMar, licencja: CC BY 3.0.
Następnie wyszukaj interesujące cię tło. Możesz skorzystać z wyszukiwarki by znaleźć tło o znanej nazwie.
RcKRFFlQikeE0
Grafika przedstawia galerię obrazów Scratch z wyszukiwarką i wpisaną frazą "Moon". Na prawo od wyszukiwarki znajduje się lista filtrów. Dostępne opcje to: "Wszystko", "Fikcja", "Muzyka", "Sport", "Na zewnątrz" i "W pomieszczeniu". Dla szukanego hasła "Moon" dostępne są 3 ilustracje: "Moon", "Space", "Space City 1", "Space City 2" i "Spaceship".
Galeria obrazów Scratch.
Źródło: GroMar, licencja: CC BY 3.0.
Po wybraniu tła, przejdź do zakładki Tła w lewej części okna Scratch. Aby zmienić kolor, kliknij na kwadrat obok napisu Wypełnij i wybierz pożądany kolor. Następnie, z listy narzędzi, wybierz opcję Prostokąt i za pomocą myszy utwórz prostokąt na obszarze, który chcesz narysować.
R1N9saN3IXIdv
Ilustracja przedstawia okno edycji tła dostępny w zakładce "Tła". Po lewej stronie widnieje lista dostępnych grafik z przyciskiem dodawani tła znajdującym się w dolnej części panelu. W prawej części dostępny jest obszar do modyfikacji tła.
Obszar edycji tła.
Źródło: GroMar, licencja: CC BY 3.0.
Przykładowy skrypt:
R1Ctb2kYILbhg
Zrzut ekranu przedstawia skrypt rysujący dziesięć gwiazd o podanym kolorze, rozmiarze pisaka na wybranym kawałku sceny. Pierwszy wiersz: Kiedy kliknięto. Drugi wiersz: Ukryj. Trzeci wiersz: Ustaw kierunek na 90. Czwarty wiersz: Podnieś pisak. Piąty wiersz: Wyczyść wszystko. Szósty wiersz: Ustaw kolor pisaka na żółty. Siódmy wiersz: Ustaw rozmiar pisaka na trzy. Ósmy wiersz: Powtórz dziesięć razy. Dziewiąty wiersz: Idź do x: losuj liczbę od -240 do 210; y: losuj liczbę od 30 do 150. Dziesiąty wiersz: Gwiazda. Jedenasty wiersz: Zatrzymaj ten skrypt.
Zrzut ekranu przedstawia skrypt rysujący dziesięć gwiazd.
Źródło: GroMar, licencja: CC BY 3.0.
Napisz w punktach algorytm, który pozwoli na stworzenie kilku gwiazd w losowych miejscach prostokąta o wymiarach 480 (szerokość) na 360 (wysokość).
RKr5qZCy2kdOF
Lista kroków:
Źródło: GroMar, licencja: CC BY 3.0.
Ćwiczenie 5
Przygotuj skrypt realizujący własny scenariusz dla drugiego duszka w dolnej części sceny.
Scena w programie Scratch ma wymiary 480 (szerokość) na 360 (wysokość). Pamiętaj, że własny scenariusz ma się odbywać w jej dolnej części.
Przykładowy skrypt:
RAZ77AXbXEaFD
Zrzut ekranu przedstawia skrypt, w którym duszek zmienia kostiumy. Pierwszy wiersz: Kiedy kliknięto. Drugi wiersz: Zawsze. Trzeci wiersz: Czekaj dwie dziesiąte sekundy. Czwarty wiersz: Następy kostium.
Zrzut ekranu przedstawia skrypt, w którym duszek zmienia kostiumy.
Źródło: GroMar, licencja: CC BY 3.0.
R1KeWALWEdsC7
Ćwiczenie 5
W jakiej kategorii znajduje się blok umożliwiający zmianę kostiumu duszka na następny? Zaznacz prawidłową odpowiedź.
Źródło: GroMar, licencja: CC BY 3.0.
Ważne!
Często bardziej złożony problem warto podzielić na podproblemy i zapisać je w postaci oddzielnych bloków. W celu utworzenia nowego bloku należy przejść do kategorii **Moje bloki**. Następnie kliknąć przycisk **Utwórz blok**, w polu edycyjnym wpisać jego nazwę i zatwierdzić przyciskiem **OK**. W obszarze skryptów pojawi się nowy blok, pod który można podczepić inne bloki realizujące rozwiązywany podproblem.
Ciekawostka
W Scratch można też utworzyć bloki z danymi wejściowymi. Na przykład blok rysujący gwiazdy o różnych długościach ramion. O tym, jak to zrobić możesz przeczytać w materiale Gwiazdozbiór - tworzenie gwiazd i figur w programie Scratch.
icckVlRpet_d429e144
RC0l4O5JZ4781
Zrzut ekranu przedstawia blok: "Przesuń o ... kroków". Blok możesz znaleźć w kategorii: "Ruch".
Zrzut ekranu przedstawia blok: "Przesuń o ... kroków".
Źródło: GroMar, licencja: CC BY 3.0.
Przesuwa duszka o podaną odległość zgodnie z aktualnym kierunkiem oraz aktualnymi ustawieniami pisaka (przyłożony/podniesiony, kolor, grubość). Jeśli chcemy przesunąć duszka do tyłu, należy podać wartość ujemną.
Przykład:
RGypbpDl5pd4c
Zrzut ekranu przedstawiający skrypt, w którym duszek przesuwany jest o sto kroków w aktualnym kierunku. Pierwszy wiersz: Kiedy kliknięto. Drugi wiersz: Przyłóż pisak. Trzeci wiersz: Ustaw rozmiar pisaka na trzy. Czwarty wiersz: Przesuń o sto kroków. Piąty wiersz: Zatrzymaj ten skrypt.
Zrzut ekranu przedstawiający skrypt, w którym duszek przesuwany jest o sto kroków w aktualnym kierunku.
Źródło: GroMar, licencja: CC BY 3.0.
icckVlRpet_d429e206
R1Da7OMgdQ1vX
Żółty klocek języka Scratch z kategorii "Kontrola" z tekstem "powtarzaj aż ...".
Klocek: powtarzaj aż.
Źródło: GroMar, licencja: CC BY 3.0.
Blok powtarza zestaw poleceń aż do spełnienia warunku logicznego. Warunki budujemy z klocków kategorii Czujniki i Wyrażenia.
Przykład:
RyHT46fyUKYFy
Przykładowy skrypt wykorzystujący klocek "powtarzaj aż". Pierwszy wiersz: Kiedy kliknięto zieloną flagę. Drugi wiersz: Powtarzaj aż dotyka "krawędź"? Trzeci wiersz: Przesuń o trzy kroki. Czwarty wiersz: Następny kostium. Piąty wiersz: Czekaj 0,3 sekundy. Szósty wiersz: Zatrzymaj ten skrypt.
Grafika przedstawia blok "... + ..." z kategorii "Wyrażenia" do dodawania dwóch wartości.
Blok "... + ..." języka Scratch.
Źródło: GroMar, licencja: CC BY 3.0.
icckVlRpet_d429e208
R1XL034UyG73m
Ilustracja przedstawia żółty blok kontroli języka Scratch "powtórz ... razy" w wpisaną wartością 10.
Blok "powtórz ... razy" z kategorii "Kontrola".
Źródło: GroMar, licencja: CC BY 3.0.
RNrexZDRYarxI
Na ilustracji widocznych jest skrypt stworzony w Scratch. Zaczyna się on blokiem "kiedy kliknięto zieloną flagę". Następnie dołączony jest blok "powtórz ... razy". Liczba powtórzeń ustawiona jest na 3. Wewnątrz bloku "powtórz ... razy". Dodano 2 bloki: "przesuń o ... kroków" z wpisaną liczbą 100 i blok "Stempluj". Skrypt zakończony jest blokiem "zatrzymaj ..." z wybraną opcją "ten skrypt".
Przykład zastosowania bloku "powtórz ... razy".
Źródło: GroMar, licencja: CC BY 3.0.
moon
RiAjt1BMEAqWR
Ilustracja przedstawia powierzchnię księżyca z widocznymi kraterami i czarne pozaziemskie niebo.
Tło "Moon" z biblioteki grafik Scratch.
Źródło: GroMar, licencja: CC BY 3.0.
przycisk_dodaj_tlo
R1eMuQYdGkt98
Grafika przedstawia okrągły niebieski przycisk z ikoną obrazka z plusem.
Przycisk dodawania nowego tła do sceny w Scratch.
Źródło: GroMar, licencja: CC BY 3.0.
Poniżej znajduje się pole tekstowe przeznaczone do zapisywania notatek. Możesz w nim zapisać wszystkie informacje, które uważasz za potrzebne.
R1W31KmUq0nMc
Pole tekstowe do zapisywania odpowiedzi i notatek.