Zmiany

Skocz do: nawigacji, wyszukiwania

Wyścigówka (wersja B)

Usunięte 1144 bajty, 11:01, 7 lis 2014
[[Category:Scenariusze Scratch]] [[Category:Mistrzowie Kodowania]]'''Materiały stworzone przez Fundację Coder Dojo Polska w ramach Programu „Mistrzowie Kodowania” finansowanego przez Samsung Electronics Polska, objęte licencją CC BY 3.0 PL "Creative Commons Uznanie Autorstwa 3.0 Polska".'''
== Informacje==
===Orientacyjny czas realizacji===
Orientacyjny czas realizacji jednej z proponowanych wersji: 2x 45minut'''2 x 45 minut''' ===Poziom trudnościi proponowane wersje===* dla klas 1-3 ✪✪✪✰ przejdź do scenariusza [[Wyścigówka (wersja A)]] lub zobacz gotowy projekt Wyścigówka [http://scratch.mit.edu/projects/25909243/ Wersja A]* dla klas 4-6 ✪✪✪✰ [[Wyścigówka (wersja B)]] (ten scenariusz), zobacz gotowy projekt Wyścigówka [http://scratch.mit.edu/projects/2548865925911076/ Wersja B]* dla gimnazjum ✪✪✰✰przejdź do scenariusza [[Wyścigówka (wersja C)]] lub zobacz gotowy projekt Wyścigówka [http://scratch.mit.edu/projects/25955675/ Wersja C]===Gotowe Dodatkowe projekty===:* Wersja z grafiką, bez skryptu dostępna jest [http://scratch.mit.edu/projects/25996540/ tutaj]* Poglądowy projekt [http://scratch.mit.edu/projects/25826861/ Gra wyścigowa] oraz * [http://scratch.mit.edu/projects/25827069/ Wersja z rankingiem zwycięstw] ===Orientacyjny czas realizacji===Orientacyjny czas realizacji jednej z proponowanych wersji: 3 x 45minut
==Etapy==
Wprowadzenie teoretyczne do projektowania gry typu “wyścig”, przygotowanie kostiumów duszków “droga” i “samochód”.
==== Wprowadzenie. ====
Czas realizacji 15 10 minut
Przedstawienie koncepcji projektu stworzenia gry zręcznościowej. Przypomnienie realizowanych na dotychczasowych zajęciach, wcześniejszych modułów dotyczących sterowania postaciami poprzez użycie klawiszy “strzałka lewo/prawo”, “strzałka góra/dół” Rozmowa odnosząca się do doświadczeń uczniów związanych z rodzajami gier typu “wyścig”. Skoncentrowanie się na grach, w których występuje element poruszania bohaterem widocznym “z lotu ptaka” (np.: River Ride, Pro Racing GT, Extreme Rally lub [[https://www.youtube.com/watch?v=T4Gq5NSnvK4 Reckless Racing ]] ).
=====Przygotowanie elementu startowego=====
W rozmowie na temat gier zręcznościowych, warto poruszyć kwestię momentu rozpoczęcia jazdy samochodu. Analogicznie do sytuacji z rzeczywistego toru wyścigowego, pojazdy zwykle stoją na linii startu w gotowości i czekają, na odmierzenie czasu do startu. W proponowanej wersji gry stworzony został zegar, nadający sygnał cały czas. Zegar najlepiej stworzyć w polu scenie sceny ponieważ będzie on przydatny dla wszystkich duszków. Dodatkowo stworzymy też nadawanie startusygnału ''start!'', ułatwi nam to w przyszłości stworzenie menu. W rozwinięciu gry, między inicjowaniem programu poprzez kliknięcie w zieloną flagę, a nadaniem sygnału ''start!'' można dodać element wizualny lub dźwiękowy w postaci odliczania (np.: 3, 2, 1...).
[[Plik:Wa scena skrypt.PNG]]
==== Przygotowanie duszka pojazdu oraz trasy wyścigu. ====
Czas realizacji 30 20 minut.
'''Uwaga!'''
*W jaki sposób zapewnić płynność obrotu pojazdu? Aby poruszać się płynnie po krzywiznach drogi korzystnie jest połączyć warunek “jeśli klawisz strzałka w lewo/prawo wciśnięty” z klockiem “obróć o X stopni”.
*Co zrobić aby samochód był stale widoczny na planszy (unikanie sytuacji, w której pojazd “ucieka” poza planszę)? Rozwiązaniem może być osadzenie pojazdu np.: w centralnym punkcie planszy.
*Wówczas należy odpowiedzieć na kolejne pytanie: W jaki sposób uzyskać efekt “jazdy samochodem”, jeśli “osadzimy” pojazd w centralnym punkcie planszy? Rozwiązanie może nasunąć obserwacja konstrukcji gry “rakieta” gier typu [https://www.youtube.com/watch?v=oswkLE4mGLI River Ride] tj.: nadanie efektu “ruchu” postaci droga, czyli trasie wyścigu.
Aby uniknąć sytuacji w której pojazd “ucieka” poza ekran, '''ustawiamy w zakładce skryptów informację określającą pozycję duszka “samochód” zawsze na środku ekranu.''' Określamy warunek umożliwiający obracanie pojazdem poprzez sterowanie klawiszami “strzałka lewo/prawo”.
[[Plik:Wa skrypt samochod.PNG]]
 
====Skrypt duszka "Tor Wyścigowy"====
'''Uwaga:'''
W Analogicznie do ustawień duszka "TorWyścigowy", w ustawieniach grafiki włączony został styl obrotów w opcji nie obracaj.
Część kodu odpowiedzialna za poruszanie się wody oraz obszaru zieleni, może wyglądać w następujący sposób:
#* wprowadzoną w skrypcie duszka “droga”
# zmienną ”maksymalna prędkość”
#* ograniczającą prędkość do maksymalnej liczby kroków (przykładowo - 5)#* umożliwiającą jej kontrolę maksymmalnej prędkości pojazdu
#* ustawioną w opcji “tylko dla tego duszka”
#* określoną jako wartość maksymalna 2.
Na tym etapie skrypt duszka “droga” może wyglądać następująco:
==== Tworzenie planszy startowej oraz budowanie menu gry. ====
Czas realizacji 20 15 minut.
Menu prezentowanej wersji gry zawiera jedynie:
* nazwę gry umieszczoną na scenie;
* przycisk rozpoczynający grę oraz nadający sygnał ‘Start’;
* miejsce na ranking;
* przycisk zerujący podium.
===== Plansza startowa (intro)=====
 [[Plik:Wyscigowka intro.PNG]] '''Wskazówka.'''
Uczniowie mogą przygotować własne wersje menu startowego. Prace nad zaawansowaną grafiką można zorganizować również w formie zadania do samodzielnego wykonania po zajęciach.
Bazowa plansza startowa to tło “scena” z podaną nazwą gry (w tym wypadku Track Car):
 
[[Plik:Gra wyscigowa intro.jpg]]
===== Przycisk “Start” =====
Przycisk “Start” rozpoczynający grę również warto przygotować w trybie wektorowym edytora grafiki programu Scratch. Wówczas zachowa on wyraźne kontury niezależnie od późniejszej modyfikacji wielkości. Podstawowy skrypt przycisku “Start” może wyglądać następująco:
[[Plik:Gra wyscigowa przycisk Wyscigowka start.jpgPNG]]
===== Zmienne globalne rankingu.=====Jednym '''Uwaga:''' Jednocześnie należy wprowadzić we wcześniejszych skryptach korektę o ukrycie duszka po kliknięciu w zieloną flagę oraz pojawienie się go wraz z elementów uatrakcyjniających gry zręcznościowe jest możliwość porównywania uzyskanych wynikówotrzymaniem komunikatu ''Start''. Aby porównywać rezultaty warto stworzyć zmienne globalne rankingu. W przykładowym scenariuszu zostały stworzone nastepujące zmienne:* czas* nick
Obie zmienne przygotowane zostały dla trzech najlepszych spośród uzyskanych wyników. Zmienne te umożliwią przechowywanie czasu okrążenia oraz nick gracza. Do duszka startu dodamy dodatkowe skrypty odpowiedzialne za ranking. Aby zmienne były widoczne na planszy startowej=== Meta, a znikały po uruchomieniu grycheck point, należy uzupełnić skrypt duszka “Start”dodatki do samochodu.===Czas realizacji 20 minut
[[Plik:Gra wyscigowa zmmienne rankingu.png]] Jednocześnie na ekranie może zostać dodany licznik z działu klocków “czujniki”: [[Plik:Gra wyscigowa czujniki.png]] Dodatkowo stwórzmy duszka który będzie nam resetował podium. [[Plik:Gra wyscigowa reset podium.jpg]] Na tym etapie menu przykładowe menu może wyglądać następująco: [[Plik:Gra wyscigowa intro2.jpg]] Uwaga!Ranking w tej formie nie działa ponieważ wymaga dokończenia poprzez dodanie mety na trasie (patrz: Moduł 3) === Zaawansowane opcje gry - nitro, przeszkoda, dodatki do samochodu oraz meta i check point. =======Cień samochodu i światła.====
Grafikę gry może uatrakcyjnić dodanie cienia pod samochodem. W tym celu można zduplikowac duszka ''samochód'' oraz pomalować na czarno.
Skrypty zastępujemy nowymi, umożliwiającymi poruszanie się duszka ''cień'' razem z duszkiem ''samochód'':
[[Plik:Wyscigówka Wyscigowka cien.jpgPNG]]
Dodatkowo można przygotować duszka ''światła'Uwaga:''' [[Plik:Wyscigówka swiatla.jpg]] Do świateł wykorzystujemy opcję [[zmienna lokalna]], która będzie przechowywała stan świateł Na tym etapie można uzupełnić skrypty wszystkich duszków o informacje na temat warstwy (włączone/wyłączone)np[[Plik:Wyscigowka skrypt swiatla.jpg]] ====Wielka przeszkoda. Jezioro!==== Jednym ze sposobów uniemożliwiającym graczom przejechanie z linii startu do mety "na skróty" jest umiejscowienie wewnątrz pętli duszek ''droga'Tor Wyścigowy' naturalnej przeszkody. W prezentowanym projekcie jest to jezioro, przygotowane jako kopia duszka ''drogamoże zasłaniać duszka '' oraz wypełnienie środkowej części kolorem niebieskim. Jezioro można upiększyć roślinami i zwierzakami. [[Plik:Jezioro grafika.jpg]] W ustawieniach grafiki włączony został [[styl obrotów]] w opcji 'samochód'nie obracaj''. [[Plik:Jezioro jeśli nie obracajustalimy odpowiedniej kolejności warstw).jpg]] Część kodu odpowiedzialna za poruszanie się naszej wody może wyglądać W dalszej części prac należy kontrolować sytuację w następujący sposób: której potrzebne będzie uzupełnienie tych informacji. Aby ustalić kolejność warstw używamy klocków z bloku [[Plik:Jezioro skryptKlocek warstwy.jpgpng]]
==== Meta i Check Point. ====
Aby wygrać wyścig trzeba dotrzeć do mety pokonując całą trasę. Tworzymy duszka ''meta'' oraz dwa punkty kontrolne (tzw. ''check point'' ) sprawdzające czy gracz na pewno przejechał przez wyznaczoną trasę. W prezentowanej wersji stworzone zostały tylko dwa punkty kontrolne, położone tuż przed metą. W skrypcie umieszczone zostały zmienne: ''okrążenie'' przechowujące ilość pokonanych okrążeńumieszczony został kod, ''pierwsze_sprawdzenie'' oraz ''drugie_ sprawdzenie'', informujące czy dane punkty kontrolne umożliwiający zasygnalizowanie graczowi zaliczenie punktu kontrolnego (check pointzmiana kostiumu na jaśniejszy kolor) zostały zaliczone. [[Plik:Check point meta1.jpg]] [[Plik:Check point meta2.jpg]]
Teraz stworzymy metę - reprezentowaną graficznie jako jasny, prosty odcinek. Duszek mety również w ustawieniach [[styl obrotówPlik:Wyscigowka skrypt checkpoint.PNG]] ma zaznaczoną opcję ''nie obracaj''.
[[Plik:Skrypt Kolejnym etapem jest stworzenie duszka ''meta'', reprezentowanego graficznie jako jasny, prosty odcinek.jpgDuszek mety również w ustawieniach [[styl obrotów]]ma zaznaczoną opcję ''nie obracaj''. Dodatkowo ustalamy, jaka liczba okrążeń gwarantuje wygraną. Tworzymy zmienną ''Okrążenia'', kodujemy w skrypcie warunek wygranej (jeżeli liczba okrążeń równa jest 3) wynikających ze spełnienia warunku przejechania samochodem przez trzykrotnie przez oba punkty kontrolne.
==== Przegrana ====Do gry można dodać duszka sygnalizującego przegraną, w sytuacji, gdy samochód wjedzie do jeziora. Skrypt takiego napisu ''przegrana'' może wyglądać w następujący sposób[[Plik:Wyscigowka meta.PNG]]
[[Plik:Duszek przegrana.jpg]]==== Wygrana! ====Dodatkowo można stworzyć duszka ''wygrana''
Innym rozwiązaniem może być wypowiedź kierowcy samochodu np. „O nie! Toniemy! Przegraliśmy!”[[Plik:Wyscigowka wygrana2.PNG]]
==== Wygrana! Ranking zwycięstw Porażka ====Gra jest gotowaDo gry można dodać duszka sygnalizującego przegraną, w sytuacji, gdy samochód wjedzie do jeziora. Można ożywić ranking poprzez stworzenie duszka Skrypt takiego napisu ''wygranaporażka''. Będzie to napis informujący o wygranej, a przy okazji sprawdzający czy nasz znaleźliśmy się na podium. Opcjonalnie cały ranking można wyzerować przypisanym klawiszem.może wyglądać w następujący sposób:
[[Plik:RankingWyscigowka porazka2.pngPNG]]