Zastanawiałem się, czy jacyś eksperci nie mogliby dzielić się wiedzą i zasobami na temat tego, co jest konieczne, aby zacząć tworzyć gry z najnowszymi standardami HTML i JavaScript (lub jak niektórzy nazywają HTML 5). Czy istnieją biblioteki JavaScript, które są niezbędne w tym procesie? Oprócz <canvas>
tagu, jakie inne elementy HTML powinniśmy wiedzieć?
web
html5
javascript
Edmundito
źródło
źródło
Istnieje już kilka frameworków: GameQuery i Akihabara , które są wtyczką dla jQuery do wykonywania niektórych czynności związanych z grą, takich jak animacje, grupowanie duszków, wykrywanie kolizji i odczytywanie danych gracza.
źródło
Aby rzucić więcej zasobów, sprawdź RaphaelJS . To bardzo ładna biblioteka do rysowania i animacji SVG, która ma ładne API. Nie zapomnij sprawdzić wersji demo.
Ogólnie rzecz biorąc, polecam
<canvas>
tagi zamiast prostej manipulacji DOM (np. Tworzenie każdego sprite'a,<div>
aby testowanie trafień było niezwykle proste). Łatwo jest pomylić i DOM źle manipulować DOM, podczas gdy tradycyjne strategie programowania 2D działają dobrze na kanwie HTML.źródło
Oprócz niektórych frameworków do tworzenia gier, które są tam dostępne, powinieneś wiedzieć o Burst Engine, który jest frameworkiem JS do wyświetlania animacji opartych na SVG na kanwie HTML5:
http://burst.bocoup.com/
Do tej pory widziałem, jak ludzie wspominają o tagach i, ale istnieją inne rzeczy DOM, które są niezbędne do rozwoju gier JS / HTML, w tym takie rzeczy, jak dodawanie wywołań zwrotnych EventListener do elementu dla takich rzeczy, jak zdarzenia „ruch myszy” i „mousedown”. Na przykład, bierze pierwszy element canvas, który może znaleźć, i ustawia go tak, aby po kliknięciu na canvas wywoływał zdefiniowaną przez Ciebie funkcję o nazwie „shootAtClick”:
document.getElementsByTagName („CANVAS”) [0] .addEventListener („mousedown”, shootAtClick, false);
Możesz to zobaczyć w akcji w tym przykładzie, w którym rozszerzyłem silnik Akihabara, aby akceptował podstawową kontrolę myszy. (Naciśnij Z, aby rozpocząć, użyj klawiszy strzałek, aby poruszać się, kliknij myszą, aby strzelać w kierunku kursora).
źródło
Wiedza o tym, jakie komponenty HTML5 są obsługiwane w jakich przeglądarkach.
Chociaż kompatybilność między przeglądarkami staje się coraz lepsza i bardziej jednolita z czasem, niektóre nowsze komponenty wciąż nie są w pełni obsługiwane.
Pamięć lokalna może mieć pewne różnice specyficzne dla przeglądarki, a do obsługi starszych wersji na pewno potrzebujesz biblioteki, takiej jak jStorage lub YUI Storage Lite .
Również gniazda sieciowe mogą różnić się w zależności od przeglądarki, ale socket.io wygląda jak obiecująca biblioteka zapewniająca wygodną abstrakcję.
Kompatybilność audio jest dość ważnym składnikiem, który wymaga różnych plików dźwiękowych dla różnych przeglądarek: http://html5doctor.com/native-audio-in-the-browser/
Chrome ma kilka istotnych błędów dźwiękowych, takich jak niemożność odtwarzania krótkich plików audio , a odtwarzanie wielu jednoczesnych dźwięków może spowodować awarię całej przeglądarki.
Najważniejsze jest zrozumienie różnic między przeglądarkami, używanie bibliotek do tworzenia streszczeń i zapewnianie starszej obsługi w razie potrzeby.
źródło
HTML i JavaScript są naprawdę kiepskimi platformami do tworzenia gier, ale nie będzie to miało znaczenia, dopóki nie zdecydujesz się na rodzaj gry. Odpowiedź byłaby zupełnie inna w przypadku strzelanek FPS, RTS lub łamigłówki.
Zauważ, że zaczynasz otrzymywać niejasne, zawiłe odpowiedzi, grzechotające przypadkowe technologie, które wydają się schludne. To znak ostrzegawczy, że nie zadałeś pytania ze szczególnie uzasadnioną odpowiedzią.
Równie dobrze możesz zapytać, jakich rzeczy w C ++ potrzebujesz do pisania aplikacji. To zależy. Powiedz nam więcej o projekcie, a możesz uzyskać przydatną odpowiedź.
Ogólnie rzecz biorąc, istnieje powód, dla którego prawie wszystkie gry internetowe są nadal Flash.
źródło