Gra: Pong

Stworzymy legendarną grę PONG

Czas trwania – DO WPISANIA
Poziom trudności – DO WPISANIA

Wstęp

Stwórzmy jedną z pierwszych gier komputerowych na świecie – przed państwem… legendarny PONG!

Przygotowanie

Co wcześniej trzeba przygotować:

Przeglądarkę Google Chrome z rozszerzeniem LOFI Robot ScratchX
(http://www.lofirobot.com/edubox/konfiguracja/)

Przebieg

Piłka

Grę zaczniemy od narysowania piłeczki, którą będziemy odbijali. Umieścimy ją na środku planszy. Proste zadanie!

1_pileczka

Piłeczka będzie się ruszała, więc trzeba będzie stworzyć zmienne. Ja nazwę je pozX i pozY.

2_pozX_pozY

Paletka

Paletka, która będzie odbijała piłkę jest równie ważna co sama piłka. Stworzymy ją używając kursora myszki.

3_paletka_1

Szerokość paletki to 30, a wysokość to 5. Problem polega na tym, że brakuje nam odświeżania naszej planszy, co powoduje nakładanie się wielu obrazów na siebie – widać to na obrazku.

4_odswiezanie_1

Okej, teraz paletka porusza się idealnie.

Ruch piłki

Czas nadać ruch piłce. Zastanówmy się czym jest ruch – ruch wykonujemy poprzez dodawanie wartości prędkości do naszej aktualnej pozycji. Aktualna pozycja piłki jest wyrażana w dwóch osiach: X i Y, zatem prędkość również będzie wyrażana w dwóch osiach, a do tego potrzebne nam będą nowe zmienne: preX i preY.

Po uruchomieniu programu piłka rysuje się w pozycji X=0;Y=0. W normalnym przypadku, gdyby piłka znalazła się w tym miejscu powinna odbić się od ściany i nadać jej prędkość w kierunku oddalającym od ściany. Gdybyśmy chcieli powiedzieć po polsku co ma zrobić program, brzmiałoby to tak: Gdy pozycja X piłki będzie mniejsza niż 5, odwróć prędkość w osi X. I tak właśnie postaramy się zbudować bloki.

5_odbijanie_lewy_x

Analogiczne odbicie wykonamy dla ścianki górnej.

6_odbijanie_gora_y

Dodajmy bloki, które zaczną faktycznie poruszać piłką. Zmieniajmy pozycję w osi X o prędkość w osi X, a pozycję w osi Y o prędkość w osi Y.

7_nadawanie_predkosci

Ups, piłka zaczyna uciekać poza ekran! Musimy dodać odbijanie od prawej ścianki oraz od paletki. Najpierw prawa ścianka.

8_odbijanie_prawa_x

A teraz paletka. Gdy piłka znajdzie się na wysokości naszej paletki czyli zmienna pozY, będzie równa 90, musimy sprawdzić czy zmienna pozX piłki, mieści się w granicach naszej paletki. Bloki warunkowe będą wyglądały następująco:

9_odbijanie_paletka

Gdy warunek będzie prawdziwy, należy zmienić prędkość w osi Y na przeciwną.

9_odbijanie_paletka_dziala

Świetnie, odbijanie działa w pełni poprawnie! Niestety gra, którą stworzyliśmy jest dość przewidywalna. Spróbujmy dodać pewien element losowości przy odbijaniu piłki od ścian.

Losowość i punkty

10_losowosc

W ten sposób nasza gra jest za każdym razem inna! Pora dodać warunki, które zadecydują o przegranej. Zróbmy tak, że za każdym razem, gdy odbijesz piłkę paletką zdobywasz 1 punkt. Gdy jednak piłka spadnie poza planszę – tracisz wszystko! W ten sposób będziesz mógł rywalizować ze znajomymi na refleks.

Najpierw zdobywanie punktów. Będziemy do tego potrzebowali zmiennej – na przykład punkty. Zwiększajmy zmienną punkty o 1 w tym samym fragmencie kodu, który powoduje odbicie od paletki.

Wyświetlajmy zdobyte punkty w którymś z górnych rogów planszy. Możemy również dorzucić zestaw bloków, który spowoduje, że po przekroczeniu przez piłkę wysokości 95 piłka pojawi się w pozycji początkowej czyli X=0; Y=0.

12_punktacja

Mamy problem! Program nalicza nam więcej niż jeden punkt… jest to spowodowane tym, że piłka czasami nie zdąży „uciec” z wysokości powodującej naliczenie punktu. Rozwiążemy to poprzez ustawienie pozycji Y piłki na 89 zaraz po zdobyciu punktu – w ten sposób na zawsze eliminujemy problem naliczania podwójnych punktów!

13_punktacja_poprawiona

Czas na zerowanie punktów. Proste bloczki dorzucone do bloku warunkowego odpowiadającego za pojawienie się piłki w pozycji początkowej spowodują, że nasze punkty zostaną bezpowrotnie utracone!

14_zerowanie_punktow

Dźwięk

Ostatni krok! Udoskonalmy naszą grę o fajne efekty dźwiękowe. Zdobycie punktu będzie sygnalizowane przez dźwięk Piano, natomiast utrata punktów przez BLIP!

15_dzwieki

Super! Oddaje PONGa w twoje ręce! Może uda ci się go jeszcze bardziej ulepszyć?

ZOBACZ GOTOWY PROJEKT

O autorze scenariusza:

LOFI Robot

Ten artykuł napisały dla Ciebie roboty znad morza. Najprawdopodobniej miały na imię Maciek i Tomek.