Materiały stworzone w ramach Programu „Mistrzowie Kodowania” finansowanego przez Samsung Electronics Polska
Cele
Celem jest stworzenie gry platformowej w wersji z przewijanym tłem oraz efektem grawitacji.
Informacje
Poziom trudności i proponowane wersje:
- dla klas 4-6 ✪✪✰✰ przejdź do strony Gra platformowana przykładzie projektu Gra platofrmowa
- dla Gimnazjum ✪✪✰✰ rozwinięcie scenariusza Gra platformowa, na przykładzie projektu Gra platformowa (wersja z grawitacją)
Etapy
Scenariusz dla klas gimnazjalnych zawiera rozszerzenie projektu Gra platformowa między innymi o efekt grawitacji. Postać poruszająca się po planszy, docierając do jej skraju, spada. W tej wersji, postać Bohatera posiada możliwość wykonywania wyższych skoków. Dodatkowo wprowadzona zostanie druga poruszająca się horyzontalnie plansza.
Projekt podstawowy
Pierwszym etapem jest zrealizowanie podstawowego projektu dostępnego na stronie Gra platformowa
Względem pierwszego projektu wprowadzone zostały zmiany:
Druga plansza
Podstawowa wersja gry rozbudowana została o dodatkowe plansze:
Duszek plansza2, rozciągająca pole gry przesuwa się identycznie jak duszek plansza, jednak ze zwiększeniem parametru na osi X, stąd w kodzie pojawia się zapis <+440>
Dodatkowo pojawia się duszek plansza3, jako góry w tle.
Kompletne skrypty dla trzech plansz:
Plansza 1.
Plansza 2. będąca przedłużeniem planszy 1.
Plansza 3. będaca wolniej przesuwajacym się tłem (efekt głębi uzyskujemy dzięki formule
Wskazówka: Więcej o tworzeniu efektów głębi Moving Background
Uwaga: w kodach plansz pojawia się opcja układania warstw, tak aby duszek góry pozostawał w dalszej warstwie niż duszki drzew, plansz i postaci Bohatera.
Bohater
Grawitacja
Na potrzeby tego projektu, w bloku Dane stworzona została zmienna Grawitacja.
Siła grawitacji ma być przeciwną do siły odbicia postaci od podłoża, tym samym ma powodować, że postać Bohatera będzie spadała w dół ekranu. Elementem zatrzymującym postać będzie plansza, jako podłoże. W momencie gdy postać Bohatera dotyka planszy, wartość zmiennej Grawitacja ma wartość równą 0. Każde odbicie od planszy (skok) wykonane jest poprzez zmianę wartości Y o przypisana wielkość i jednocześnie powoduję modyfikację zmiennej Grawitacja do wyznaczonej wartości, większej niż wartość Y. Dodatkowo wprowadzony zostaje warunek, że postać wykonująca skok w górę, opada tak długo aż dotknie planszy, sukcesywnie pomniejszając wartość Y o wartość zmiennej Grawitacja.
Poruszanie się
Dla obu kierunków (w lewo/w prawo) zostały wprowadzone zmiany umożliwiające postaci poruszanie się w przedziale X -100 do 100 bez poruszania planszy. Jednocześnie aby ruch Bohatera był nieco wolniejszy i żeby wyraźniej było widać jego kroki, w kodzie zmiany kostiumu wprowadzona została opcja <czekaj> W związku z tym zmienna <przewijanie> zmniejszona została o -20:
Skok i chowanie się
Do skoku i chowania się doszedł warunek dotykania obu plansz:
Pozycja
Aby uniknąć sytuacji 'zapadania się' postaci w planszy, wprowadzona zostąła poprawka w kodzie:
Super Jabłko
Zmianie uległ skrypt duszka 'Super Jabłko'. Przesuwanie jest analogiczne do ruchu plansz, przy czym wprowadzony został parametr losowości (przy starcie i po każdym zebranym jabłku)
Modyfikacja skrytpu sprawdzania dotknięcia i losowania pozycji jabłka:
- jabłko pozostaje na planszy do momentu dotknięcia przez Bohatera (nie chowa po jakimś czasie, jeżeli gracz go nie złapał)
- opcja zliczania punktów, dodanie zmiennej <punkty> dostępnej wszystkim duszkom. Przy dotknięciu jabłka zmienia się o 1.
Finalny skrypt jabłka:
Jednocześnie wprowadzona została zmiana sygnału PowerUp w skrypcie postaci Bohatera - powiększenie o 50% wielkości Bohatera po zebraniu 5 punktów (Super Jabłka)
Drzewa
Oddzielenie drzewek od tła teraz poruszają się niezależnie. Skrypt przesuwania jest taki sam jak dla tła, rozwinięty o opcję ukrycia duszków, gdy przesuną się do krawędzi ekranu.