Allegro.js

0
47
views

Czym jest Allegro.js?

Allegro.js to biblioteka JavaScript napisana przez Sosa Sosowskiego. Przepisał on stare, poczciwe Allegro4, aby można było go używać do pisania gier przeglądarkowych, kompatybilnych z HTML5. Nasze aplikacje zadziałają więc na komputerze, smartfonie i tablecie. Na stronie domowej biblioteki, możemy przeczytać, że allegro.js nie jest zorientowane obiektowo oraz że można używać go za darmo. Jest tam też dostępny tutorial.

Pong

Moja pierwsza gra w allegro.js to prosty Pong, inspirowany między innymi grą Jardinains. Poruszamy się paletką za pomocą strzałek i staramy się zdobyć jak najwięcej punktów odbijając spadające klocki. Im dłużej odbijamy konkretny klocek, tym więcej punktów on daje. Po kilku odbiciach dostajemy też bonus – poszerzenie paletki lub dodatkowe punkty.

Aby zagrać, kliknij w ten link.

Skrót implementacji

Implementacja używa zwykłych tablic, w których znajdują się struktury. Dla przykładu tablica klocki[] posiada pola: x, y, vx, vy, width, height zapamiętujące pozycję, prędkość i rozmiar każdego klocka. Dodatkowo w strukturze mam zmienne boolowskie(prawda albo fałsz), aby sprawdzić, czy klocek jest zbity.

Kolizje ze ścianami bocznymi: Jeśli klocek wyleciał za daleko, czyli jego pozycja w osi X, jest większa od szerokości ekranu lub jest mniejsza od zera, mnożę jego prędkość razy minus jeden, przez co klocek zawraca, gdy spotyka krawędź ekranu.

Kolizja klocka z paletką nie jest aż tak prosta. Musimy bowiem nadać klockowi pewną prędkość zależną od miejsca, w którym zderzył się z paletką. Im bliżej środka rakietki, tym mniejszy kąt odbicia (klocek.vx zależy od klocek.x-paletka.x).
Samo sprawdzenie czy kolizja wystąpiła, można przeprowadzić następująco:

 

ZOSTAW ODPOWIEDŹ

Please enter your comment!
Please enter your name here