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

✦ AI
Zarośnięty mchem kamienny labirynt z lśniącą złotą skrzynią skarbów w samym centrum, oświetlony światłem zachodzącego słońca.

W poszukiwaniu skarbu – jak przejść przez labirynt?

Gry

Gra „W poszukiwaniu skarbu” w Scratchu opiera się na trzech elementach: ruchu duszka za pomocą strzałek, wykrywaniu ścian przez czujnik koloru oraz zmianie tła po dotarciu do wyjścia. To proste ćwiczenie pozwala poznać współrzędne, warunki i zmienne.

Jak przygotować scenę i duszka?

W Scratchu utwórz nowe tło i narysuj labirynt widziany z góry. Ściany zaznacz jednym, jednolitym kolorem, a korytarze pozostaw w innym kolorze. Przy wyjściu umieść skarb lub drzwi w kolejnym wyraźnym kolorze. Ten kolor posłuży później do wykrywania zakończenia poziomu.

Wybierz duszka, który będzie poruszał się po labiryncie. Jego rozmiar powinien pasować do szerokości korytarzy. Zbyt duża postać może zakleszczać się przy ścianach, a zbyt duży krok utrudni dokładne sterowanie.

Położenie duszka określają dwie współrzędne:

  • x opisuje pozycję poziomą i przyjmuje wartości od –240 do 240.
  • y opisuje pozycję pionową i przyjmuje wartości od –180 do 180.
  • Środek sceny ma współrzędne x: 0 oraz y: 0.
  • Pozycję startową możesz odczytać z panelu duszka i wpisać do bloku „idź do x: y:”.

Ustaw duszka w wybranym miejscu startowym, a następnie dodaj skrypt:

kiedy kliknięto zieloną flagę
idź do x: [wartość] y: [wartość]
zmień tło na [labirynt1]

Jak zaprogramować ruch po labiryncie?

Ruch przygotuj osobno dla każdego klawisza strzałki. W każdym skrypcie ustaw kierunek, a potem użyj bloku „przesuń o”. Przykładowa wartość ruchu to 20 kroków, ale możesz ją zmienić, jeśli korytarze są węższe.

  1. Ruch w dół – po naciśnięciu klawisza „strzałka w dół” ustaw kierunek na 180 i przesuń duszka o wybraną liczbę kroków.
  2. Ruch w górę – po naciśnięciu klawisza „strzałka w górę” ustaw kierunek na 0 i przesuń duszka o tę samą liczbę kroków.
  3. Ruch w prawo – po naciśnięciu klawisza „strzałka w prawo” ustaw kierunek na 90 i wykonaj ruch.
  4. Ruch w lewo – po naciśnięciu klawisza „strzałka w lewo” ustaw kierunek na –90 i wykonaj ruch.

Przykładowy skrypt dla ruchu w dół może wyglądać tak:

kiedy klawisz [strzałka w dół] naciśnięty
ustaw kierunek na 180
przesuń o 20 kroków

Podobne skrypty utwórz dla pozostałych kierunków. Jeśli chcesz, możesz na końcu każdego z nich dodać blok „zatrzymaj ten skrypt”.

Jak wykrywać kolor ścian?

Sam ruch pozwoliłby duszkowi przechodzić przez całą scenę. Aby zablokować ściany, po bloku „przesuń o” dodaj warunek z kategorii Czujniki:

jeżeli dotyka koloru [kolor ściany] to
przesuń o –20 kroków

Mechanizm działa w dwóch etapach. Duszek najpierw wykonuje ruch, a następnie sprawdza, czy dotknął ściany. Jeśli tak, cofa się o dokładnie tę samą liczbę kroków. Dzięki temu wraca na miejsce sprzed kolizji. Takie rozwiązanie jest prostsze niż próba całkowitego zablokowania ruchu przed jego wykonaniem.

Wstaw ten warunek do każdego skryptu sterowania. Jeżeli duszek porusza się o 10 kroków, powinien także cofać się o –10 kroków.

Uwaga na wybór koloru: nie wybieraj koloru ściany „na oko” z palety. W bloku „dotyka koloru” użyj pipety i wskaż dokładnie fragment ściany na narysowanym labiryncie. Cieniowanie, nierówne wypełnienie albo kilka podobnych odcieni może sprawić, że czujnik nie zadziała. Najlepiej użyć jednolitego koloru bez przejść tonalnych.

Jak przejść na drugi poziom?

Przy wyjściu umieść skarb lub drzwi w jednolitym kolorze, innym niż kolor ścian. W każdym skrypcie ruchu dodaj kolejny warunek:

jeżeli dotyka koloru [kolor skarbu] to
powiedz [Hurra! Udało się!] przez 2 sekundy
zmień tło na [labirynt2]
idź do x: [nowa pozycja] y: [nowa pozycja]

Drugie tło możesz utworzyć przez skopiowanie pierwszego labiryntu. Zmień układ ścian i położenie wyjścia, ale pozostaw kolor ścian taki sam. Po zmianie tła ustaw duszka w nowym miejscu startowym, aby nie pojawił się w środku ściany.

Jeśli po dotknięciu skarbu tło zmieni się, lecz duszek pozostanie w starej pozycji, dodaj blok „idź do x: y:” bezpośrednio po zmianie tła. To ważne przy przechodzeniu między poziomami.

Jak użyć zmiennych do liczenia postępów?

Gra może zapamiętywać numer poziomu i liczbę wykonanych ruchów. Utwórz dwie zmienne dla wszystkich duszków:

  • Poziom gry – przechowuje numer aktualnego poziomu.
  • Liczba ruchów – zlicza naciśnięcia klawiszy sterowania.

Po kliknięciu zielonej flagi ustaw wartości początkowe:

ustaw [Poziom gry] na 1
ustaw [Liczba ruchów] na 0

W każdym skrypcie ruchu dodaj blok „zmień [Liczba ruchów] o 1”. Po przejściu na drugi poziom użyj „zmień [Poziom gry] o 1” albo ustaw tę zmienną na 2. Po zakończeniu gry duszek może powiedzieć, ile ruchów wykonał, na przykład za pomocą bloku „powiedz” oraz „połącz”.

Czy gra działa poprawnie?

Uruchom projekt i sprawdź kolejno najważniejsze elementy:

  • Czy po kliknięciu zielonej flagi duszek zawsze pojawia się w ustalonym miejscu?
  • Czy każda strzałka przesuwa postać w innym kierunku?
  • Czy duszek cofa się po dotknięciu ściany?
  • Czy dotknięcie skarbu wyświetla komunikat i zmienia tło?
  • Czy po zmianie poziomu duszek trafia na nową pozycję startową?
  • Czy zmienne pokazują właściwy poziom i liczbę ruchów?

Gdy podstawowa wersja działa, zmień liczbę kroków na 10 i sprawdź, czy łatwiej przejść wąskie korytarze. Możesz też dodać licznik czasu, system punktów albo komunikat kończący grę po ukończeniu drugiego poziomu.

Redakcja grynieznane.pl

Grynieznane.pl to portal dla graczy. Piszemy o grach komputerowych, premierach i nowościach, publikujemy poradniki do Minecrafta i innych popularnych tytułów. Pomagamy rozwiązywać problemy ze Steamem i platformami. Doradzamy, jaki sprzęt dla gracza wybrać, od myszki i słuchawek po komputer. Piszemy z pasją i konkretnie, tak żeby więcej czasu zostawało na samo granie.

Może Cię również zainteresować

Potrzebujesz więcej informacji?