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
(https://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!
Piłeczka będzie się ruszała, więc trzeba będzie stworzyć zmienne. Ja nazwę je pozX i 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.
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.
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.
Analogiczne odbicie wykonamy dla ścianki górnej.
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.
Ups, piłka zaczyna uciekać poza ekran! Musimy dodać odbijanie od prawej ścianki oraz od paletki. Najpierw prawa ścianka.
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:
Gdy warunek będzie prawdziwy, należy zmienić prędkość w osi Y na przeciwną.
Ś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
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.
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!
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!
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!
Super! Oddaje PONGa w twoje ręce! Może uda ci się go jeszcze bardziej ulepszyć?