Posty

Wyświetlam posty z etykietą klawiatura

Jak stworzyć prostą grę w JavaScript? (kontynuacja - krok 4)

Obraz
Teraz będziemy strzelać :) Najpierw wgraj do podfolderu images ten oto plik: missile.png To będzie grafika naszego pocisku. Musimy ją też załadować. Więc odnajdź tę linijkę w kodzie: i dodaj do niej pozycję 'missile.png', w ten sposób: Rakietę(pocisk) będziemy wystrzeliwać za pomocą spacji. Spacja ma kod klawisza 32, więc musimy zamapować kod 32 i przypisać jakąś bardziej sensowną nazwę. Nazwiemy ten klawisz 'fire'. znajdź w kodzie mapowanie klawiszy: i dodaj na końcu klucz 32 o wartości 'fire'. W ten sposób: Dodałem też tutaj słówko var , które przez pomyłkę nie zostało przeze mnie dodane w poprzednich częściach tutoriala (ale teraz jest okazja, żeby to nadrobić ;) Teraz decydujący moment, czyli samo wystrzeliwanie. Dodamy najpierw na początku skryptu "stałą" która będzie zawierała szybkość pocisku: A teraz znajdź instrukcję switch/case w funkcji initialize() i dopisz do niej ten kod: odpal program od teraz, kiedy wciśniesz sp...

Jak stworzyć prostą grę w JavaScript? (kontynuacja - krok 3)

Obraz
Teraz zajmiemy się obsługą klawiatury. Najpierw potrzebujemy wydzielić zmienną player , żeby móc się do niej później odwoływać. Na razie to tworzymy obiekt gracza, ale nigdzie nie zapamiętujemy (poza tablicą entities) tego obiektu. Dodaj więc na początku skryptu tę linijkę: potem, w funkcji initialize odnajdź linijkę, która wywołuje funkcję createEntity z pierwszym parametrem 'player' i przypisz utworzoną jednostkę do zmiennej player jak możesz zauważyć, dodaliśmy również właśćiwość speed i zainicjalizowaliśmy ją do wartości 4*. To ważne, bo będzie nam to później potrzebne. *Możesz spróbować z innymi wartościami, żeby przyśpieszyć/zwolnić ruch rakiety. Bezpośrednio po tej linijce wstaw ten kod: jest to metoda player.input i będzie ona wywołana za każdym razem, kiedy użytkownik wciśnie klawisz. W zależności od wciśniętego klawisza, poruszamy rakietę w lewo, w prawo, w górę bądź w dół. Jak zapewne zauważyłeś, jest to pewna abstrakcja. Nie operujemy tu wpros...