Strona główna
Gry
W poszukiwaniu skarbu – jak przejść przez labirynt?

W poszukiwaniu skarbu – jak przejść przez labirynt?

✦ AI
Otwarta skrzynia skarbów z magicznym blaskiem wewnątrz starożytnego, zarośniętego labiryntu w lesie.

W grze „W poszukiwaniu skarbu” przeprowadzisz duszka przez labirynt, sterując nim strzałkami i blokując przejście przez ściany. Najważniejszy mechanizm polega na tym, że po dotknięciu koloru ściany duszek cofa się o taką samą liczbę kroków, o jaką się przesunął.

Przygotowanie tła i postaci

Otwórz projekt w Scratchu i przejdź do zakładki Tła sceny. Narysuj labirynt widziany z góry. Zostaw korytarze w jasnym kolorze, a ściany oznacz jednym, wyraźnym kolorem. W miejscu wyjścia umieść skarb albo inny przedmiot, który będzie metą pierwszego poziomu.

Kolory mają znaczenie, ponieważ Scratch rozpoznaje kolizję na podstawie bloku „jeżeli dotyka koloru”. Ściany powinny mieć kolor jednolity i różny od tła korytarzy oraz pola wyjścia. Ustaw też duszka w miejscu, z którego ma rozpoczynać grę.

Na początku przygotuj następujące elementy:

  • Tło sceny z narysowanym labiryntem.
  • Duszka gracza dopasowanego rozmiarem do szerokości korytarzy.
  • Kolor ścian używany później do wykrywania kolizji.
  • Kolor mety umieszczony przy skarbie lub wyjściu.

Pozycję startową duszka określisz za pomocą współrzędnych X i Y. Na scenie wartość X określa położenie poziome, a Y pionowe. Zakres sceny wynosi od –240 do 240 dla X oraz od –180 do 180 dla Y. Kliknij duszka i odczytaj jego położenie, aby wykorzystać je w skrypcie startowym.

Logika poruszania się i kolizji

Ruch zaprogramujesz osobno dla każdego klawisza strzałki. Do sterowania wykorzystaj bloki zdarzeń, ruchu i czujników. Każdy ruch powinien mieć taką samą długość, na przykład 20 kroków.

  1. Utwórz skrypt rozpoczynający się blokiem „kiedy klawisz strzałka w górę naciśnięty”. Ustaw kierunek na 0 i dodaj „przesuń o 20 kroków”.
  2. Skopiuj podobny układ dla strzałki w dół. W tym przypadku ustaw kierunek na 180 i ponownie przesuń duszka o 20 kroków.
  3. Dla strzałki w prawo ustaw kierunek na 90, a dla strzałki w lewo na –90.
  4. W każdym skrypcie, zaraz po ruchu, dodaj blok „jeżeli dotyka koloru”. Wybierz pipetą dokładny kolor ściany z narysowanego labiryntu.
  5. Wewnątrz warunku umieść blok „przesuń o –20 kroków”. Ujemna wartość cofnie duszka do miejsca sprzed ostatniego ruchu.
  6. Przetestuj każdy kierunek i sprawdź, czy duszek zatrzymuje się przed ścianą, zamiast przechodzić przez jej fragment.

Mechanizm działa w dwóch etapach. Najpierw duszek wykonuje ruch, a następnie Scratch sprawdza, czy jego kostium dotyka koloru ściany. Jeżeli tak, drugi blok przesuwa go w przeciwną stronę. Ruch o 20 kroków i cofnięcie o –20 kroków znoszą się, więc postać wraca do poprzedniej pozycji.

Przykładowy układ dla ruchu w prawo wygląda logicznie tak: po naciśnięciu strzałki duszek ustawia kierunek 90, przesuwa się o 20 kroków, sprawdza kontakt z kolorem ściany i w razie kolizji cofa się o 20 kroków. Ten sam schemat zastosuj w pozostałych skryptach.

Uwaga: kolor wybrany w bloku „jeżeli dotyka koloru” musi być dokładnie taki sam jak kolor ściany na tle. Najbezpieczniej użyć pipety i wskazać ścianę bezpośrednio na rysunku. Nawet niewielka różnica odcienia może sprawić, że Scratch nie wykryje kolizji, a duszek zacznie przechodzić przez przeszkody.

Dodawanie poziomów i zmiennych

Przygotuj drugie tło, kopiując pierwsze i zmieniając układ ścian. Zachowaj ten sam kolor ścian, aby istniejące skrypty kolizji nadal działały. Przenieś wyjście w inne miejsce i zapisz tło jako „labirynt2”.

W każdym skrypcie ruchu dodaj drugi warunek. Tym razem sprawdzaj, czy duszek dotyka koloru mety. Po wykryciu tego koloru możesz użyć bloków:

„powiedz Hurra! Udało się! przez 2 sekundy”, a następnie „zmień tło na labirynt2”. Po zmianie tła ustaw nową pozycję startową duszka za pomocą bloku „idź do x: … y: …”. Dzięki temu postać nie pojawi się przypadkowo w środku drugiego labiryntu.

Skrypt uruchamiany zieloną flagą powinien ustawiać początkowe tło, pozycję duszka oraz wartości zmiennych. Utwórz zmienne „Poziom gry” i „Liczba ruchów”. Na starcie ustaw pierwszą na 1, a drugą na 0. Po przejściu na drugi poziom zmień „Poziom gry” na 2.

Jeśli chcesz liczyć ruchy, dodaj do każdego skryptu strzałki blok „zmień Liczba ruchów o 1”. Po ukończeniu drugiego poziomu duszek może wyświetlić komunikat z wynikiem, na przykład liczbą wykonanych ruchów.

Wyzwania dla ambitnych

Gotowy projekt możesz rozbudować o kolejne elementy:

  • Dodaj licznik czasu, który ograniczy długość rozgrywki.
  • Wprowadź punkty za zebranie skarbów lub innych przedmiotów.
  • Przygotuj większą liczbę poziomów o różnym układzie ścian.
  • Zmień liczbę kroków z 20 na 10 i sprawdź, jak wpływa to na precyzję sterowania.

Najpierw przetestuj podstawowy labirynt, a dopiero potem dodawaj kolejne funkcje. Gdy ruch, kolizje i zmiana tła działają poprawnie, możesz zapisać projekt jako „labirynt” i rozbudowywać go o czas, punkty lub następne poziomy.

Redakcja gamecodes.pl

Gamecodes.pl to portal dla graczy. Publikujemy poradniki do popularnych gier, kody, triki i sposoby na szybsze postępy. Sprawdzamy wymagania sprzętowe, recenzujemy tytuły i podpowiadamy, jaki sprzęt dla gracza wybrać. Piszemy konkretnie, żeby każdy znalazł odpowiedź szybko i mógł wrócić do gry.

Może Cię również zainteresować

Potrzebujesz więcej informacji?