Migawki z lekcji: programowanie gier komputerowych

13-11-2016

W ubiegłym tygodniu uczniowie klasy 3b (kierunek: technik informatyk) na lekcjach programowania gier komputerowych kodowali swoje gry w JavaScript oraz HTML5. Zanim szczegółowo omówimy różne biblioteki fizyki oraz silniki gier 3d, postanowiliśmy „dla sportu” napisać od podstaw własną platformówkę w Vanilla JS.

Od czego powinno się zacząć lekcję programowania? Oczywiście od zaparzenia mocnej kawy.

img_8251

Następnie zrobiliśmy krótki wstęp teoretyczny. Omówienie nowych funkcji, integracja z dotychczasowym repozytorium oraz zaplanowanie dalszej pracy. Cel na dzisiaj – implementacja animacji poklatkowych z arkuszy spritów.

Najpierw HTML – jak wiadomo, cudów tutaj nie ma. Zwykły canvas na którym rysowana jest cała gra:

index.html

See the Pen JS Animate1 by Vladimir (@wlodku) on CodePen.

Przejdźmy do klasy postaci – nazwijmy ją Dragon. Z rozpędu dodajemy koordynaty, załadowujemy arkusz z klatkami animacji oraz liczniki wierszy i kolumn animacji. Wyjątkowo pustą zostawimy medodę update() – przyda się później w czasie programowania kolizji. Kluczowe były funkcje przewijające animację w czasie ruchu postaci oraz „sprytne” wywołanie funkcji drawImage():

dragon.js

See the Pen JS Animate2 by Vladimir (@wlodku) on CodePen.

Acha, no a tak wygląda nasz sprite sheet – pierwszy lepszy darmowy arkusz pobrany stąd. Szerokość klatki: 96px.

bahamut.png
bahamut

Na koniec pętla główna gry. Wykorzystaliśmy rekurencyjne wywołanie funkcji requestAnimationFrame() – docelowo 60 FPS. . Dla uproszczenia kodu nie liczyliśmy delty czasu pomiędzy klatkami – ale pamiętamy, że gdy gra się rozbuduje będziemy musieli do tego wrócić, aby nie grafika się nie cięła przy spadku FPSów. Sterowanie postacią mieliśmy zrobione w ubiegłym tygodniu. Teraz zostało tylko zebranie wszystkiego w całość:

script.js

See the Pen JS Animate3 by Vladimir (@wlodku) on CodePen.

No i w końcu kilka zdjęć z kodowania – najprzyjemniejszej części lekcji. Większość uporała się z zadaniem przed czasem.

Tak wygląda efekt naszej pracy – sterowanie strzałkami (po kliknięciu na ramkę). Teraz zostało „tylko” dodanie mapy z kafelków, przeciwników, fabuły… i gra będzie gotowa. Za kilka tygodni powinniśmy skończyć i wtedy na pewno wrócimy do tematu w następnych migawkach.

Włodzimierz Bubak

 

Ilość odsłon: 5894

wstecz

Kontakt



Centrum Kształcenia Zawodowego i Ustawicznego

 ul. Promienna 65, 43-600 Jaworzno

 sekretariat@ckziu.jaworzno.pl

 32 76 29 100

Używamy ciasteczek. Czytaj więcej.