Gra platformowa (wersja z grawitacją)

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:

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:

Plansze.JPG

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>

Plansza 2.JPG

Dodatkowo pojawia się duszek plansza3, jako góry w tle.

Kompletne skrypty dla trzech plansz:

Plansza 1.

Plansza 1.JPG

Plansza 2. będąca przedłużeniem planszy 1.

Plansza 2kompl.JPG

Plansza 3. będaca wolniej przesuwajacym się tłem (efekt głębi uzyskujemy dzięki formule Przewijanie na dwa.JPG

Wskazówka: Więcej o tworzeniu efektów głębi Moving Background

Plansza 3.JPG

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.

Grawitacja.png

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.

Grawitacja skrypt.png

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:

Ruchbohaterazmiany.JPG

Skok i chowanie się

Do skoku i chowania się doszedł warunek dotykania obu plansz:

Skokitp.JPG

Pozycja

Aby uniknąć sytuacji 'zapadania się' postaci w planszy, wprowadzona zostąła poprawka w kodzie:

Wplanszy.JPG

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)

Jabłko uzupelnienie.JPG

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:

Jabłko calu.JPG

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)

Powerup gim.JPG

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.

Oddzielenie drzew.JPG

Ostatnio zmodyfikowano 12:03, 1 wrz 2014