Czas trwania – DO WPISANIA
Poziom trudności – DO WPISANIA
Wstęp
Świetna gra, dzięki której poćwiczysz zręczność i refleks. Balansująca Belka polega na utrzymywaniu kulki na jednowymiarowej belce, która przechyla się w zależności od użytego kontrolera – potencjometru, czujnika światła, a nawet przycisku!
Przygotowanie
Moduły:
- LOFI Brain
- Przycisk
- Czujnik światła
- Potencjometr
- Kabel USB
Co wcześniej trzeba przygotować:
Przeglądarkę Google Chrome z rozszerzeniem LOFI Robot ScratchX
(https://www.lofirobot.com/edubox/konfiguracja/)
Konstrukcja robota
Podłączenie:
- Czujnik światła → port INPUT3
- Przycisk → INPUT1
- Potencjometr → INPUT2
- Zasilanie robota → kabel USB → wyjście USB w komputerze
Przebieg
Tworzenie środowiska gry
Grę zaczniemy od narysowania tła, belki i kulki.
Tło będzie w naszym przypadku pomarańczowe, a jakże!
Belka powinna przebiegać przez środkek, a jako, że będziemy przy jej pomocy balansowali piłką to musimy punkt obrotu ustawić na środku planszy.
Punkt obrotu znajduje się na środku planszy czyli na współrzędnych X=50; Y=50, a więc żeby belka przebiegała przez środek planszy trzeba było odpowiednio “wyregulować” jej położenie. Czas na kulkę, która będzie poruszała się wzdłuż górnej krawędzi belki.
Obracanie belki
W celu szybszego testowania gry, obrót belki będzie uzależniony od pozycji myszki w osi X. Dodajmy zmienną Obrot i ustawiajmy i ustawmy ją na Mysz X. Pamiętaj o dodaniu bloku zmiennej Obrot do bloku obracania.
Problem jest taki, że pozycja myszki odczytywana jest w przedziale od 0 do 100. Czyli możemy przekręcić belkę do 100 stopni zgodnie z ruchem wskazówek zegara. My potrzebujemy przedziału najlepiej od -50 do 50, więc użyjemy bloku matematycznego!
Lepiej? No lepiej!
Wprawianie kulki w ruch
Żeby kulka poruszała się po belce zgodnie z uproszczonymi prawami fizyki zmieniajmy jej położenie w osi X o wartość obrotu. Przede wszystkim potrzebować będziemy zmiennej odpowiadającej położeniu kulki. Nazwę ją KulkaX.
Cóż… piłka faktycznie porusza się wzdłuż belki, jednakże jest bardzo, bardzo szybka i właściwie to prawa fizyki zostały totalnie zaniedbane – naprawmy najpierw czułość. Wydaje się, że gdy podzielimy Obrot na 5 przy zmianie KulkaX to gra powinna być nieco przyjaźniejsza dla ludzie nieobdarzonych nadludzkim refleksem 🙂
Wprowadźmy teraz przyspieszenie. W tym celu przyda się kolejna zmienna reprezentująca prędkość. Zgadnij jak ją nazwę… zgadza się – po prostu Predkosc
O! Niewielkie zmiany, ale wielkie efekty – fizyka gry została znacznie poprawiona. Jak widzisz mamy zmienną Predkosc do której dodajemy poprzednio używaną formułę. Dodawana do prędkości wartość musi być dość mała (dlatego podzieliłem Obrot na 100) bo w przeciwnym wypadku nasza kulka dość szybko osiąga bardzo duże prędkości. Spróbuj pozmieniać niektóre parametry i zobacz jak wpływają na grywalność.
Warunki decydujące o przegranej
Musimy dodać jakieś warunki, które utrudnią naszą grę bo obecnie możemy wylecieć kulką poza belkę, a następnie jak gdyby nic się nie stało ponownie na nią wrócić. Sprawdzajmy czy kulka znajduje się na belce poprzez kontrolę jej pozycji w osi X. Jeżeli zmienna KulkaX będzie pomiędzy -40, a 40 to znaczy że jest na belce. W przeciwnym razie przegrywamy, a kulka powinna zniknąć!
Stwórzmy zmienną Przegrana. Zmienna ta stanie się prawdą, gdy kulka wyleci poza belkę.
Co po przegranej? Wyświetlimy napis “GAME OVER”.
Punktacja
Gra musi mieć jakiś element rywalizacji! Gdy udaje nam się utrzymywać kulkę na belce powinniśmy zdobywać punkty. Do tego będziemy potrzebowali nowej zmiennej, bloku naliczającego punkty oraz bloku, który będzie je wyświetlał.
Sprawmy, by po przegraniu wyświetlały się zdobyte przez nas punkty.
Rosnący poziom trudności
Obecnie mamy stały poziom trudności. Jeżeli będziemy dostatecznie zręczni to możemy bez problemu zdobyć baaardzo dużo punktów. Możemy to zmienić poprzez uzależnienie czułości myszki od punktacji. Spróbujmy coś pomajstrować. Obecna trudność jest określana przez poniższy blok.
Punkty narastają wraz z upływem czasu, więc gdy podzielimy Obrot na coraz większe Punkty to trudność będzie malała. My chcemy odwrotnego efektu więc pomnóżmy Obrot przez Punkty.
Ups… teraz nasza gra w przeciągu sekundy robi się piekielnie trudna, a wręcz niemożliwa do grania. Musimy jeszcze podzielić punkty przez jakąś dużą liczbę – niech to będzie 10000.
Inne kontrolery
W tej grze możemy używać dowolnych kontrolerów takich jak na przykład potencjometr, czujnik światła, przycisk albo czujnik odległości. Wystarczy, że wybrany element podepniesz pod którekolwiek z wejść i zamiast Mysz X wybierzesz odpowiednie wejście robota.
Udźwiękowienie
Przydałyby się jakieś efekty dźwiękowe.
Taki niewielki efekt dźwiękowy na pewno umili rozgrywkę, a jeżeli chciałbyś zbudować prawdziwą ścieżkę dźwiękową dla Balansującej Belki to zajrzyj do lekcji o zastosowaniu pętli w dźwiękach. No chyba, że przychodzi ci do głowy własna melodia?