Dodatek feryjny – wprowadzenie

W poprzedniej lekcji poznaliśmy komunikaty w Scratchu i zobaczyliśmy, że jeden sygnał może sterować zachowaniem wielu duszków jednocześnie.
W tej lekcji wykorzystamy tę samą ideę, ale w nowym, zimowym projekcie.

Stworzymy zaśnieżony stok, na którym dzieci zjeżdżają na sankach, nartach i deskach. Na trasie pojawią się przeszkody (słupy, deski, fragmenty drogi, chata góralska), a duszki będą reagowały na komunikaty – zatrzymywać się, ruszać lub zmieniać zachowanie w zależności od sytuacji.

Do budowy projektu użyjemy elementów z obu grafik:

  • postaci dzieci poruszających się po śniegu,
  • zaśnieżonych elementów terenu i przeszkód,
    z których samodzielnie ułożysz tło dające wrażenie zjazdu w dół stoku.

Ten projekt pokaże, jak komunikaty pomagają koordynować ruch, reakcję i bezpieczeństwo wielu obiektów w jednej grze.

Komunikaty

Dziś zrobisz projekt w Scratchu, w którym pociąg wysyła komunikat „Uwaga pociąg!”, a pojazdy na drodze reagują: zatrzymują się przed przejazdem i ruszają, gdy pociąg przejedzie.

To świetny przykład, jak w Scratchu jedna informacja (komunikat) może sterować zachowaniem wielu duszków.


Co będzie w projekcie

W projekcie będą działały jednocześnie:

  • pociąg (jeździ od lewej do prawej i z powrotem),
  • samochody (pojawiają się losowo jako klony),
  • rowerzysta (też może pojawiać się losowo),
  • komunikaty:
    • Uwaga_pociąg
    • Można_jechać

Krok 0 – Przygotowanie projektu

  1. Wgraj tło przejazdu jako tło sceny.
  2. Wgraj duszki:
    • Pociąg
    • Auto (np. czerwone)
    • Auto2 (np. niebieskie) (opcjonalnie)
    • Rower (opcjonalnie)
  3. Ustaw pociąg na torach (mniej więcej na środku torów).

CZĘŚĆ A – Pociąg i komunikaty

Krok 1 – Zmienna sterująca sytuacją

Utwórz zmienną dla wszystkich duszków:

  • Pociąg_jedzie (0 / 1)

Znaczenie:

  • 0 → można jechać
  • 1 → pociąg jedzie, trzeba uważać

Krok 2 – Pociąg jeździ co jakiś czas (losowo)

W duszku Pociąg zrób skrypt:

  • pociąg jest „ukryty” poza ekranem,
  • czeka losowy czas,
  • wjeżdża,
  • nadaje komunikat,
  • przejeżdża,
  • nadaje komunikat „można jechać”.

Logika (krok po kroku):

  1. Na start:
  • ustaw Pociąg_jedzie = 0
  • schowaj pociąg gdzieś poza scenę (np. x = -260, y na wysokości torów)
  1. W pętli:
  • czekaj (losuj 3 do 8) sekund (pociąg nie przyjeżdża zawsze tak samo)
  • ustaw Pociąg_jedzie = 1
  • nadaj komunikat Uwaga_pociąg
  • przejedź przez ekran
  • ustaw Pociąg_jedzie = 0
  • nadaj komunikat Można_jechać

Ważne: pociąg ma jechać raz z lewej, raz z prawej.
Najprościej: losuj kierunek.


Krok 3 – Jak wyświetlić komunikat na ekranie

W pociągu (albo w osobnym duszku „Napis”):

  • po komunikacie Uwaga_pociąg pokaż napis np. na 2 sekundy:
    • „Uwaga pociąg!”
  • po komunikacie Można_jechać pokaż:
    • „Można jechać!”

Wysyłanie komunikatu

Odbieranie komunikatu

To może być:

  • powiedz (...) przez 2 sekundy
    albo
  • osobny duszek tekstu, który się pokazuje i znika.

CZĘŚĆ B – „Czas reakcji” (żeby to miało sens)

W prawdziwym świecie kierowca nie zatrzymuje się natychmiast.
Dlatego dodamy krótki „czas reakcji”.

Utwórz zmienną (dla wszystkich):

  • Czas_reakcji (np. 0.5 albo 1 sekunda)

Ustaw na starcie:

  • Czas_reakcji = 1

Jak działa:

  • gdy przyjdzie komunikat Uwaga_pociąg, pojazd:
    • jeszcze przez chwilę jedzie,
    • dopiero potem hamuje (zatrzymuje się).

CZĘŚĆ C – Pojazdy jako klony (losowo, bez korka i kolizji)

Najwygodniej: jeden duszek auta tworzy klony, a każdy klon sam jedzie.

Krok 4 – „Generator” aut

W duszku Auto:

  1. Na start: schowaj duszka (bo działa jako generator)
  2. W pętli:
  • czekaj (losuj 1 do 3) sekund
  • utwórz klona siebie

To daje losowy ruch i różne odstępy.


Krok 5 – Start klona: ustawienie pozycji i kierunku

W kiedy zaczynam jako klon ustaw:

  • losuj, czy auto jedzie z góry na dół, czy z dołu do góry:
    • kierunek 180 (w dół) albo 0 (w górę)
  • ustaw pozycję startową:
    • jeśli w dół: y = 200, jeśli w górę: y = -200
    • x ustaw na środek drogi (na pasie)

Pro tip: żeby nie było „zderzeń” między pasami, ustaw stałe x dla każdego pasa:

  • pas lewy: x = -20
  • pas prawy: x = 20

Wtedy auta jadą „po pasach” i nie wchodzą na siebie.


Krok 6 – Zmienna prędkości klona

Utwórz zmienną dla tego duszka (lokalną dla klona):

  • v (prędkość)

Na starcie klona ustaw:

  • v = losuj 2 do 4

CZĘŚĆ D – Zatrzymywanie tylko tych, które dojeżdżają do torów

To najważniejsza logika!

Krok 7 – „Strefa przejazdu” (warunek zatrzymania)

Przyjmijmy, że przejazd jest w okolicy środka sceny, np. y ≈ 0.

Zrobimy strefę: np. od y = -40 do y = 40.

Pojazd powinien reagować, gdy:

  • Pociąg_jedzie = 1
  • i auto jest „blisko przejazdu” (w strefie)

Krok 8 – Pętla ruchu auta z reakcją na pociąg

W klonie auta zrób pętlę:

  1. Jeśli pociąg jedzie i auto jest blisko przejazdu:
  • czekaj (Czas_reakcji) (reakcja kierowcy)
  • v = 0 (stop)
  1. Jeśli pociąg nie jedzie:
  • jeśli auto stało: przywróć mu prędkość (np. v = losuj 2 do 4)
  • jedź dalej
  1. Cały czas:
  • zmień y o v (dla jazdy w dół) albo zmień y o -v (dla jazdy w górę)
  1. Gdy auto wyjedzie poza ekran:
  • usuń tego klona

CZĘŚĆ E – Jak uniknąć kolizji między autami (prosto)

Żeby nie było „wchodzenia” jedno w drugie:

Najprostsze rozwiązanie do szkoły:

  • klony tworzą się rzadziej (np. losuj 2–4 sekundy)
  • i są 2 pasy z innym x
  • prędkości w wąskim zakresie (2–4)

Dodatkowe pro rozwiązanie (opcjonalnie):

  • dodaj warunek: jeśli auto „widzi” inny samochód na swojej drodze → zwalnia.

Ale do lekcji 6K zwykle wystarczy pierwsza wersja.