Wyścigówka: Różnice pomiędzy wersjami
(→Plansza startowa (intro)) |
(→Ustawienie zmiennej “prędkość”) |
||
(Nie pokazano 28 wersji utworzonych przez 3 użytkowników) | |||
Linia 1: | Linia 1: | ||
− | |||
− | + | '''Materiały stworzone w ramach Programu „Mistrzowie Kodowania” finansowanego przez Samsung Electronics Polska''' | |
− | + | == Informacje== | |
+ | Poglądowy projekt [http://scratch.mit.edu/projects/25826861/ Gra wyścigowa] | ||
+ | [http://scratch.mit.edu/projects/25827069/ Wersja z rankingiem zwycięstw] | ||
− | + | Poziom dla klas 4-6 ✪✪✪✰ | |
− | + | ||
− | + | Poziom dla klas gimnazjum ✪✪✰✰ | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
== Cele == | == Cele == | ||
Linia 57: | Linia 53: | ||
===== Tworzenie duszka samochodu. ===== | ===== Tworzenie duszka samochodu. ===== | ||
− | Na potrzeby niniejszego scenariusza | + | Na potrzeby niniejszego scenariusza przygotowane zostały dwie propozycje samochodów: |
[[Plik:Gra wyscigowa auta.jpg]] | [[Plik:Gra wyscigowa auta.jpg]] | ||
Linia 81: | Linia 77: | ||
Czas realizacji: 20 minut | Czas realizacji: 20 minut | ||
− | Proponowane w scenariuszu rozwiązanie zakłada | + | Proponowane w scenariuszu rozwiązanie zakłada następujące etapy realizacji gry: |
+ | |||
===== Skrypt obrotu samochodu (ustawianie kierunku jazdy)===== | ===== Skrypt obrotu samochodu (ustawianie kierunku jazdy)===== | ||
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” | 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” | ||
Linia 109: | Linia 106: | ||
Uwzględnienie prędkości samochodu kodujemy, analogicznie do informacji o ruchu, w skrypcie duszka “droga”. Dodatkowo warto dodać maksymalną prędkość samochodu Tworzymy zmienną dostępną tylko dla tego duszka i ustawimy ją np. na 2. | Uwzględnienie prędkości samochodu kodujemy, analogicznie do informacji o ruchu, w skrypcie duszka “droga”. Dodatkowo warto dodać maksymalną prędkość samochodu Tworzymy zmienną dostępną tylko dla tego duszka i ustawimy ją np. na 2. | ||
Na tym etapie skrypt duszka “droga” może wyglądać następująco: | Na tym etapie skrypt duszka “droga” może wyglądać następująco: | ||
+ | |||
+ | Skrypt do uzupełnienia o jeżeli prędkość <0 to ustaw prędkość na 0 | ||
[[Plik:Gra wyscigowa skrypt droga3.jpg]] | [[Plik:Gra wyscigowa skrypt droga3.jpg]] | ||
− | ==== Tworzenie planszy startowej oraz | + | ==== Tworzenie planszy startowej oraz budowanie menu gry. ==== |
Czas realizacji 20 minut. | Czas realizacji 20 minut. | ||
Menu prezentowanej wersji gry zawiera jedynie: | Menu prezentowanej wersji gry zawiera jedynie: | ||
− | * nazwę gry | + | * nazwę gry umieszczoną na scenie; |
* przycisk rozpoczynający grę oraz nadający sygnał ‘Start’; | * przycisk rozpoczynający grę oraz nadający sygnał ‘Start’; | ||
* miejsce na ranking; | * miejsce na ranking; | ||
Linia 130: | Linia 129: | ||
===== Przycisk “Start” ===== | ===== Przycisk “Start” ===== | ||
− | Przycisk “Start” rozpoczynający grę również warto przygotować w trybie wektorowym edytora | + | 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 start.jpg]] | ||
===== Zmienne globalne rankingu.===== | ===== Zmienne globalne rankingu.===== | ||
Jednym z elementów uatrakcyjniających gry zręcznościowe jest możliwość porównywania uzyskanych wyników. Aby porównywać rezultaty warto stworzyć zmienne globalne rankingu. W przykładowym scenariuszu zostały stworzone nastepujące zmienne: | Jednym z elementów uatrakcyjniających gry zręcznościowe jest możliwość porównywania uzyskanych wyników. 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, a znikały po uruchomieniu gry, należy uzupełnić skrypt duszka “Start”. | ||
+ | [[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. | 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: | Na tym etapie menu przykładowe menu może wyglądać następująco: | ||
+ | |||
+ | [[Plik:Gra wyscigowa intro2.jpg]] | ||
Uwaga! | Uwaga! | ||
− | Ranking w tej formie nie działa ponieważ wymaga dokończenia poprzez dodanie mety na trasie (patrz: Moduł ) | + | 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. === | === 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 cien.jpg]] | ||
+ | |||
+ | Dodatkowo można przygotować duszka ''światła'' | ||
+ | |||
+ | [[Plik:Wyscigówka swiatla.jpg]] | ||
+ | |||
+ | Do świateł wykorzystujemy opcję [[zmienna lokalna]], która będzie przechowywała stan świateł (włączone/wyłączone). | ||
+ | |||
+ | [[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 ''droga'' naturalnej przeszkody. W prezentowanym projekcie jest to jezioro, przygotowane jako kopia duszka ''droga'' 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 ''nie obracaj''. | ||
+ | |||
+ | [[Plik:Jezioro nie obracaj.jpg]] | ||
+ | |||
+ | Część kodu odpowiedzialna za poruszanie się naszej wody może wyglądać w następujący sposób: | ||
+ | |||
+ | [[Plik:Jezioro skrypt.jpg]] | ||
+ | |||
+ | ==== Meta i Check Point. ==== | ||
+ | |||
+ | Aby wygrać wyścig trzeba dotrzeć do mety pokonując trasę. Tworzymy duszka ''meta'' oraz 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ń, ''pierwsze_sprawdzenie'' oraz ''drugie_ sprawdzenie'', informujące czy dane punkty kontrolne (check point) 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ów]] ma zaznaczoną opcję ''nie obracaj''. | ||
+ | |||
+ | [[Plik:Skrypt meta.jpg]] | ||
+ | |||
+ | ==== 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:Duszek przegrana.jpg]] | ||
+ | |||
+ | Innym rozwiązaniem może być wypowiedź kierowcy samochodu np. „O nie! Toniemy! Przegraliśmy!”. | ||
− | ==== | + | ==== Wygrana! Ranking zwycięstw ==== |
− | + | Gra jest gotowa. Można ożywić ranking poprzez stworzenie duszka ''wygrana''. 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. | |
− | + | ||
− | + | ||
− | + | [[Plik:Ranking.png]] | |
− | + |
Aktualna wersja na dzień 15:43, 28 sie 2014
Materiały stworzone w ramach Programu „Mistrzowie Kodowania” finansowanego przez Samsung Electronics Polska
Spis treści
- 1 Informacje
- 2 Cele
- 3 Etapy realizacji
- 3.1 Wprowadzenie teoretyczne do projektowania gry typu “wyścig”, przygotowanie kostiumów duszków “droga” i “samochód”.
- 3.2 Budowanie skryptu sterowania i poruszania się, tworzenie menu gry.
- 3.3 Zaawansowane opcje gry - nitro, przeszkoda, dodatki do samochodu oraz meta i check point.
Informacje
Poglądowy projekt Gra wyścigowa
Wersja z rankingiem zwycięstw
Poziom dla klas 4-6 ✪✪✪✰
Poziom dla klas gimnazjum ✪✪✰✰
Cele
Celem projektu jest stworzenie przez uczniów gry zręcznościowej typu wyścig. W proponowanym projekcie jest to Gra wyścigowa jednak możliwe jest zastąpienie duszka samochód innymi postaciami, zgodnie z zainteresowaniami uczniów (np.: duszek koń dla miłośników hippiki, duszek rower dla osób zainteresowanych kolarstwem)
Cele ogólne:
- przypomnienie i utrwalenie poznanych wcześniej poleceń i konstrukcji języka Scratch
- opracowanie projektu gry zręcznościowej
- implementacja projektu w środowisku Scratch
Cele szczegółowe:
- uczeń rozumie i potrafi stosować odpowiednie instrukcje strukturalne
- uczeń rozumie pojęcie zmiennej i wykorzystuje je w programie Scratch
- uczeń potrafi konstruować skrypty zawierające zmienną
- uczeń potrafi implementować grę w środowisku Scratch
Zgodność z Podstawą Programową
- plastyka - perspektywa, pojęcie perspektywy, rodzaje perspektyw
- geometria - rzutowanie
- przyroda - mapy
- informatyka
Etapy realizacji
Wprowadzenie teoretyczne do projektowania gry typu “wyścig”, przygotowanie kostiumów duszków “droga” i “samochód”.
Wprowadzenie.
Czas realizacji 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 [Reckless Racing ] ).
Przygotowanie duszka pojazdu oraz trasy wyścigu.
Czas realizacji 15* minut. Uwaga! Jeśli dysponujemy ograniczonym czasem pracy, zaproponujmy uczniom stworzenie zarysu duszków, które mogą zostać dopracowane graficznie samodzielnie podczas indywidualnej pracy uczniów w domu. Pierwsze zadanie dotyczy stworzenia podstawowych duszków, tj. pojazdu oraz drogi będącej trasą wyścigu. Kolejność powstawania obu kostiumów nie ma znaczenia, na potrzeby tego skryptu rozpoczniemy od tworzenia duszka “droga”.
Uwaga! W programie Scratch istnieją dwie opcje rysowania kostiumów: tryb bitmapy oraz tryb rysowania wektorowego. Wybór opcji rysowania w trybie wektorowym umożliwia swobodne przybliżanie i oddalanie obrazka, bez utraty jego jakości. Dodatkowo tryb wektorowy oferuje inny zestaw narzędzi graficznych, niż tryb bitmapy.
Tworzenie duszka “droga” będącego trasą toru wyścigowego.
Jedną z możliwości narysowania trasy jest użycie narzędzia “Elipsa”. Po narysowaniu bazowego kształtu używając narzędzia “Przekształć” modyfikujemy trasę wzbogacając ją o zakręty.
Tworzenie duszka samochodu.
Na potrzeby niniejszego scenariusza przygotowane zostały dwie propozycje samochodów:
Wskazówka: Kostium duszka, narysowany jako widok z perspektywy lotu ptaka, powinien umożliwić łatwą identyfikację przodu-tyłu pojazdu lub postaci (np.: w przypadku zielonego samochodu jest to wyraźnie zaznaczona przednia szyba pojazdu).
Wstęp do budowania skryptu.
Czas realizacji: 15 minut
Intuicyjnym jest rozpoczęcie tworzenia skryptu “ruchu” od postaci samochodu. W rozmowie na temat przygotowania takiego skryptu warto ustalić istotne punkty, np.:
- W którym momencie samochód ma rozpocząć jazdę? Zazwyczaj rozpoczęcie gry klawiszem “Kiedy kliknięto zieloną flagę” inicjuje pojawienie się planszy startowej (intro), na której znajdują się podstawowe instrukcje oraz przycisk rozpoczynający grę “Start”. Warto zatem od razu ustalić, że ruch pojazdu inicjuje inny komunikat, np.: otrzymanie wiadomości “Start”.
- 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” tj.: nadanie efektu “ruchu” postaci droga, czyli trasie wyścigu.
Uwaga! Jeśli zajęcia realizujemy w blokach trwających 45minut, możemy zakończyć ten etap w formie zadania do samodzielnego rozwiązania przez uczniów w domu. Wówczas kolejne zajęcia należy rozpocząć od przypomnienia zrealizowanych etapów oraz od omówienia propozycji uczniów.
Skrypt sterowania jazdą samochodu.
Czas realizacji: 20 minut
Proponowane w scenariuszu rozwiązanie zakłada następujące etapy realizacji gry:
Skrypt obrotu samochodu (ustawianie kierunku jazdy)
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” Uwaga! W proponowanym skrypcie dodatkowo wprowadzony został element pętli umożliwiającej stałe sprawdzanie czy stan klawisza “strzałka lewo/prawo” nie uległ zmianie. Pętla powstała poprzez wprowadzenie polecenia “zawsze nadaj wiadomość” oraz “kiedy otrzymam tick”. To rozwiązanie umożliwia zsynchronizowanie wszystkich pętli, uruchamianych w tym samym czasie.
Skrypt imitujący jazdę samochodu.
Konsekwencją osadzenia “samochodu” w centralnym punkcie ekranu, jest konieczność niestandardowego podejścia do kodowania jego “jazdy”. W proponowanym rozwiązaniu, to nie samochód będzie się poruszał, tylko droga po której jedzie. W tym celu tworzymy skrypt ruchu w zakładce duszka “droga”:
Uwaga! W ustawieniach stylu obrotu duszka “droga” należy ustawić tryb “nie obracaj”. Wówczas duszek nie reaguje na zmianę kierunku, porusza się zgodnie ze swoim kierunkiem.
Ustawienie zmiennej “prędkość”
Dotychczas zrealizowane etapy umożliwiają osiągnięcie efektu poruszania się samochodu po drodze. Aby urozmaicić i rozwinąć grę można wprowadzić zmienną “prędkość”. Prędkość będzie zastępowała wartość wyrażającą liczbę kroków oraz umożliwi uzyskanie efektu przyspieszenia (zwiększanie prędkości). Uwaga! Zmienna prędkość musi być ustawiona w opcji “dla wszystkich duszków”
Uwzględnienie prędkości samochodu kodujemy, analogicznie do informacji o ruchu, w skrypcie duszka “droga”. Dodatkowo warto dodać maksymalną prędkość samochodu Tworzymy zmienną dostępną tylko dla tego duszka i ustawimy ją np. na 2.
Na tym etapie skrypt duszka “droga” może wyglądać następująco:
Skrypt do uzupełnienia o jeżeli prędkość <0 to ustaw prędkość na 0
Czas realizacji 20 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)
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):
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:
Zmienne globalne rankingu.
Jednym z elementów uatrakcyjniających gry zręcznościowe jest możliwość porównywania uzyskanych wyników. 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, a znikały po uruchomieniu gry, należy uzupełnić skrypt duszka “Start”.
Jednocześnie na ekranie może zostać dodany licznik z działu klocków “czujniki”:
Dodatkowo stwórzmy duszka który będzie nam resetował podium.
Na tym etapie menu przykładowe menu może wyglądać następująco:
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:
Dodatkowo można przygotować duszka światła
Do świateł wykorzystujemy opcję zmienna lokalna, która będzie przechowywała stan świateł (włączone/wyłączone).
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 droga naturalnej przeszkody. W prezentowanym projekcie jest to jezioro, przygotowane jako kopia duszka droga oraz wypełnienie środkowej części kolorem niebieskim. Jezioro można upiększyć roślinami i zwierzakami.
W ustawieniach grafiki włączony został styl obrotów w opcji nie obracaj.
Część kodu odpowiedzialna za poruszanie się naszej wody może wyglądać w następujący sposób:
Meta i Check Point.
Aby wygrać wyścig trzeba dotrzeć do mety pokonując trasę. Tworzymy duszka meta oraz 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ń, pierwsze_sprawdzenie oraz drugie_ sprawdzenie, informujące czy dane punkty kontrolne (check point) zostały zaliczone.
Teraz stworzymy metę - reprezentowaną graficznie jako jasny, prosty odcinek. Duszek mety również w ustawieniach styl obrotów ma zaznaczoną opcję nie obracaj.
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:
Innym rozwiązaniem może być wypowiedź kierowcy samochodu np. „O nie! Toniemy! Przegraliśmy!”.
Wygrana! Ranking zwycięstw
Gra jest gotowa. Można ożywić ranking poprzez stworzenie duszka wygrana. 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.