Logo

Czym jest język Scratch.

Scratch to edukacyjny język obiektowy, stworzony jako środek do nauczania dzieci i młodzieży podstaw programowania oraz środowisko programistyczne służące do tworzenia i uruchamiania programów w tym języku. Scratch umożliwia łatwe tworzenie interaktywnych historyjek, animacji, gier, muzyki. Programowanie odbywa się w sposób wizualny - elementy języka mają kształt puzzli a poprzez przeciąganie mogą być układane w określonym porządku.

Środowisko Scratch można zainstalować na komputerze lub tworzyć aplikacja od razu w przeglądarce internetowej. W ramach projektu Scratch powstał też portal , na którym zawarto bazę wiedzy, niezbędne oprogramowanie, jak i funkcje społecznościowe. Programista korzystając z utworzonego konta może przesyłać wyniki swojej pracy na serwer, gdzie może potem się dzielić swoimi aplikacjami z innymi użytkownikami. Skrypty opublikowanych aplikacji są jawne i w każdej chwili możemy zapoznać się z różnymi rozwiązaniami, które ktoś już zastosował. Środowisko Scratch do pracy wymaga oprogramowania Adobe Air i Adobe Flash Player.

Co? Gdzie? Jak?

Edytor Scratch jest prostym i intuicyjnym programem, który po instalacji jest gotowy do pracy bez żadnej konfiguracji (ewentualnie użytkownik może wybrać język, oczywiście polski jest obsługiwany). W edytor jest wbudowana baza wiedzy wraz z przykładami zastosowań, baza gotowych postaci nazwanych w Scratch duszkami, baza z tłami, które uatrakcyjniają wygląd naszej aplikacji oraz baza z dźwiękami, które możemy dowolnie przypisywać obiektom. W razie potrzeby do dyspozycji mamy też prosty edytor graficzny i dźwiękowy, jeśli gotowe rozwiązania nie spełniają naszych oczekiwań. Grafika i dźwięk może być również dołączona ze źródeł zewnętrznych.

Interfejs

 

W tym miejscu użytkownik może uzyskać podgląd pracy skryptu, przejść na widok pełnoekranowy, sprawdzić, które obiekty są aktualnie aktywne lub wymusić zatrzymanie skryptu. Okno ma rozmiar 480x360 pikseli, przy czym sam środek to punkt x0,y0. Obiekty, które będą się poruszać powinny respektować te wymiary.

 

W tym miejscu możemy zarządzać naszymi postaciami i tłami.

 

Największą część interfejsu zajmuje obszar roboczy. W tym miejscu tworzymy skrypt oraz zajmujemy się zmianą wyglądu naszego duszka. Jeden obiekt może mieć wiele kostiumów, które użyte w skrypcie ożywią naszego duszka. Taka sama zasada dotyczy tła, które będzie się zmieniało podczas działania skryptu. Ważnym elementem podczas zmian w wyglądzie jest przycisk wyśrodkowania, źle wyśrodkowany kostium będzie nieprawidłowo współpracował z poleceniami ruchu w skrypcie.

 

Jak stworzyć własny program

Tworzenie w Scratchu aplikacji jest bardzo proste i do uzyskania pierwszych efektów swojej pracy nie jest potrzebna wiedza programistyczna. Skrypt programu powstaje z wizualnych komend, klocków, które dzięki mechanizmowi przyciągnij i upuść potrafią same łączyć się ze sobą w większą całość. Kształt, kolor i opis klocka same podpowiadają do czego mogą być wykorzystane. Instrukcje zostały pogrupowane na 10 różnych kategorii i dzięki odmiennej kolorystyce łatwo można zrozumieć jaki klocek odpowiada za poszczególne efekty w skrypcie. Dzięki temu, że Scratch jest językiem skryptowym nie wymaga do pracy kompilatora. Skrypt programu jest na bieżąco wykonywany, przez co łatwiej nam zrozumieć w jaki sposób działa dany klocek. W obecnej wersji języka mamy możliwość oprogramowania duszka, który będzie wykonywał zadane czynności lub reagował na zdarzenia. Podobnie można wykonać skrypt dla tła na scenie, które może reagować na przebieg innych skryptów w duszkach.


Dostępne polecenia języka Scratch


Okno z duszkami Okno z duszkami

 

W sekcji zdarzenia są zawarte klocki uruchamiające skrypt. Są niezbędne i zawsze umieszcza się je na pierwszej pozycji, inaczej interpreter zignoruje całą zawartość skryptu. Skrypt można uruchamiać metodą podstawową poprzez kliknięcie zielonej flagi lub klockami, które będą pobierać dane z myszki lub klawiatury. W bardziej rozbudowanych programach gdzie mamy wiele skryptów stosuje się klocek startujący po wysłaniu komunikatu z innego skryptu, w ten sposób łatwo można sterować kolejnością zdarzeń w całym programie. Jeśli nasz program jest rozbudowany, zawiera zmienne, pozycjonuje obiekty na siatce (x,y), stosuje dodatkowe efekty graficzne to za klockiem rozpoczynającym działanie skryptu powinniśmy umieścić klocki, które przywrócą stan początkowy w zmiennych, pozycjach xy czy efektach graficznych. Scratch po zakończeniu działania skryptu zapisuje jego stan końcowy. Ponowne uruchomiony skrypt pobierze ostatnie zapamiętane wartości. W takim przypadku działanie skryptu będzie nieprawidłowe. Dlatego programista powinien uwzględniać stan początkowy, który będzie przywracany za każdym uruchomieniem programu.

 

W sekcji kontrola mamy do dyspozycji klocki kontrolujące przebieg skryptu. Pętle skończone, nieskończone, pętle z warunkiem, klocki warunkowe, klocki zatrzymania skryptu. W pętle i warunki możemy wstawiać dowolne inne klocki skryptu, które zostaną wykonane jeśli spełnimy dany warunek. Warunki realizujemy poprzez zielone klocki matematyczno-logiczne lub niebieskie, które nasłuchują zdarzeń z czujników i kolizji między obiektami.

 

Sekcja dane pozwala tworzyć zmienne i listy danych. Zmienne są niezbędne jeśli chcemy stworzyć program z większą ilością funkcji. Zmienna może przechowywać wartość liczbową, tekst lub wartość logiczną prawda/fałsz. Ustawienie wartości zmiennych powinno lub ich zerowanie być jedną z pierwszych czynności podczas budowania skryptu. Listę z danymi można tworzyć przez wstawienie wartości liczbowej, tekstu lub wartości logicznej na pierwszą pozycję lub ostatnią. Podobnie można wykonać odczyt listy. Za pomocą skryptu ze zmiennymi pomocniczymi można wykonać np. operację sortowania listy o ile zawiera taki sam typ danych.

 

Sekcja z czujnikami głównie służy do wprowadzenia interakcji między obiektami w programie. Mamy do dyspozycji klocek wykrywający kolizję między duszkami, ze wskaźnikiem myszy czy krawędzią sceny. Podobnie działa klocek kolizji z kolorami, dzięki tej funkcji możemy wykonać interakcję między duszkiem a kolorami zastosowanymi w tle (np. labirynt). Czujniki potrafią też wykrywać klawisze myszy, pobierać znaki z klawiatury, zadać użytkownikowi pytanie i np. przypisać odpowiedź do zmiennej czy tabeli. Często są kojarzone z żółtymi klockami pętli i warunków, które będą decydować o przebiegu skryptu po wykryciu sygnału z niebieskiego klocka z czujnikiem.

 

Sekcja z wyrażeniami służy głównie do przeprowadzania obliczeń i sprawdzania warunków logicznych. Mamy do dyspozycji podstawowe działania matematyczne, liczby pseudolosowe, koniunkcję, alternatywę, negację oraz klocek przeprowadzający operacje bardziej złożone jak np. trygonometria czy pierwiastkowanie. Klocki wyrażeń bardzo często są przypisywane do zmiennej gdy trzeba przypisać jej jakąś wartość, oraz w klockach warunkowych i pętlach warunkowych, gdzie trzeba ustalić warunek opuszczenia pętli.

 

Sekcja ruch zawiera klocki, które odpowiadają za ruch obiektów na scenie. Jeśli nasz program ma robić coś więcej niż tylko dobrze wyglądać to praktycznie są niezbędne. Ruch odbywa się na siatce współrzędnych 480x360 pikseli, jeden krok to jeden piksel. Mamy do dyspozycji klocki przesunięcia, klocki obrotów, klocki kierunku, klocki wodzenia za kursorem lub innym obiektem, klocek idź do x,y jeden z ważniejszych klocków ruchu, gdzie często będziemy współpracować ze zmiennymi. Mamy również przydatny klocek odbicia od brzegu sceny.

 

 

Sekcja wygląd służy do modyfikacji wyglądu duszka na scenie. Mamy do dyspozycji klocki z komunikatami, ważne klocki pokaż/ukryj, które często są wykorzystywane przy kolizjach obiektów. Również istotne są klocki zmiany kostiumu, jeśli są umieszczone w pętli to możemy wykonać animację duszka na scenie, oczywiście musimy mieć uprzednio przygotowane poszczególne klatki animacji. Również istotny jest klocek zmiany tła, dzięki, któremu możemy np. warunkowo wykonać zmianę tła. Klocek czyszczenia efektów jest jednym z klocków, które powinny być umieszczone na początku skryptu, gdzie ustalamy warunki początkowe pracy całego programu.

 

Sekcja pisak również zawiera ciekawe funkcje jeśli chcemy by nasze obiekty mogły narysować coś na scenie. Stempel odbija kopię duszka po każdym przebiegu pętli natomiast pisak będzie nieustannie kreślił drogę obiektu. Jest to przydatne gdy redukujemy duszka do wielkości jednego piksela, w ten sposób np. możemy wykonać wykres funkcji na układzie współrzędnych. Klocek podniesienia pisaka i czyszczenia sceny powinny być zawarte w warunkach początkowych skryptu.

 

Przykłady programów

 

Gra polegająca na zestrzeleniu wrogich robocików Strona domowa programu.

 

Skrypt sterujący jednostką użytkownika.

 

Skrypt niszczącego piorunka.

 

Skrypt wrogich jednostek ;].

 

Program pobierający od użytkownika parametry tabeli a następnie przeprowadza jej sortowanie. Strona domowa programu.


 

Skrypt programu.

 

Program obliczający ogólną postać funkcji kwadratowej z wykresem jej przebiegu. Strona domowa programu.

 

Skrypt obliczający wartość Delta, miejsca zerowe oraz wierzchołek paraboli.

 

Skrypt rysujący siatkę dla wykresu funkcji kwadratowej.

 

 

Skrypt rusujący układ współrzędnych.

 

Skrypt rysujący przebieg wykresu funkcji kwadratowej.