Materiały stworzone w ramach Programu „Mistrzowie Kodowania” finansowanego przez Samsung Electronics Polska

Cel

Celem projektu jest stworzenie gry w której postać, sterowana klawiaturą, porusza się po planszy typu labirynt.


Informacje

© Oparto o Materiały stworzone przez Ośrodek Edukacji Informatycznej i Zastosowań Komputerów w Warszawie w ramach Programu "Mistrzowie Kodowania" finansowanego przez Samsung Electronics Polska, objęte licencją CC-BY-SA 3.0, Scenariusz zajęć Moduł III "Kot w labiryncie" zmodyfikowane m in.: o elementy gry Arkanoid autorstwa panSarin CC BY-SA 2.0.

Gotowy projekt Labirynt

Etapy

Scena labirynt

Aby stworzyć labirynt przygotowujemy tło sceny. Planszę gry można narysować w edytorze Scratch lub pobranć na stronie Mistrzozwie Kodowania. Plansza jest podzielona na 12 kolumn i 9 wierszy. Pola labiryntu można wypełnić kolorem w edytorze graficznym programu Scratch ustawionym na tryb bitmapy. W prezentowanej wersji, Bohater porusza się po jednej planszy Labiryntu, a stworzone dodatkowe tła są wykorzystane jedynie jako efekt graficzny po dotarciu bohatera do punktu docelowego (niebieski kwadrat).

Labirynt tlo.png

Skrypt zmiany sceny uwzględnia pojawienie się odpowiedniego tła po rozpoczęciu gry (przycisk Kiedy kliknieto ZF.png) oraz zmianę tła po dotarciu duszka Bohater do niebieskiego pola.

Labirynt tło skrypt.png

Duszek Bohater

W trybie wektorowym edytora graficznego programu Scratch, przygotowana została postać Bohater posiadająca trzy kostiumy. Dwa z nich umożliwiają wizualizację efektu poruszania się, trzeci jest graficzną reprezentacją utraty energii.

Labirynt bohater.png

Skrypty regulujący miejsce pojawienia się duszka Bohater po uruchomieniu gry, zmianę kostiumów oraz poruszanie się duszkiem przy pomocy strzałek o czterech kierunkach wyglądająnastepująco:

Labirynt postac ruch.png

Duszek Punkty

Aby uatrakcyjnić grę, wprowadzony zostanie duszek Punkty. W prezentowanej wersji, dotknięcie przez duszka Bohater duszka Punkty nie jest konieczne, ale przynosi korzyść w postaci zdobywania punktów.

  1. Czy na planszy ma pojawić się jeden duszek Punkty?
  2. Jeśli więcej niż jeden - ile? Czy ma to być stała liczba, czy zmienna?
  3. Czy tworzyć kilka duszków czy wykorzysać opcję klonuj?
  4. W jakich miejscach ma pojawić się duszek Punkty?
  5. Jeśli w zmiennych - jak wyznaczanych?

W przykładowej wersji zastosowano następujące rozwiązania:

  1. Na planszy pojawia się więcej niżjeden duszek Punkty"
  2. Ich liczba jest zmienna, nie większa niż 10.
  3. Zastosowana została opcja klonuj jako mniej ważąca dla programu.
  4. Miejsca zostały wyznaczone formułą matematyczną.
  5. Miejsca nie są stałe, są losowane.

Na tym etapie prac skrypt duszka Punkty przedstawia się następująco:

Labirynt punkty skrypt.png

Uwaga: należy pamiętać o wprowadzenia do skryptu klocka usuń tego klona

Zmienna Punkty i Energia

W bloku Zmienne wprowadzone zostały dwie zmienne: punkty, mające rejestrować dotarcie "bohatra" do ulokowanych na planszy "Punktów". Dodatkowo wprowadzona została zmienna "energia" która rejestrować będzie wyjście duszka Bohater poza trasę labiryntu.

Modyfikacja skryptu duszka Bohater

W pierwszej kolejności ustawione zostają parametry startowe obu zmiennych:

Skrypt zmienna punkty.png

Następnie stworzony zostanie skrypt duszka Bohater umożliwiający rejestrowanie wyjścia duszka poza labirynt, stratę energii każdorazowo przy próbie przejścia poza trasę oraz blokowanie takiego przejścia i zmianę kostiumu na "zero energii" gdy postać Bohater przekroczy limit błędnych kroków. Skrypt zostanie uzupełniony również o warunek zmiany tła na finałowe, gdy Bohater dotrze do niebieskiego pola.

Finałowy skrypt duszka Bohater przedstawia się następująco:

Bohater calosc.png

Modyfikacja skryptu duszka Punkty

Analogicznie uzupełnieniu podlega skrypt duszka Punkty:

Punkty final.png

Duszek Przeciwnik

Aby uatrakcyjnić grę, można wprowadzić przeciwników, poruszających się po planszy i np.: po zetknięciu się z duszkiem Bohater, uszczuplających posiadaną energię. Przygotowany duszek Przeciwnik posiada skrypty umożliwiające:

  • regulacje ukrywania/pojawiania się
  • ruch po stałym torze, ale ze zmiennym zakresem oraz prędkością
  • zmniejszenie wartości zmiennych energia o 1 punkt, przy każdym zetknięciu z duszkiem Bohater

Przeciwnik labirynt.png

Ostatnio zmodyfikowano 23:04, 15 sie 2014