制作基于HTML / JavaScript的游戏的基本知识


17

我想知道是否有任何专家可以共享知识和资源,以开始使用最新的HTML标准和JavaScript(或称HTML 5的游戏)制作游戏所需的知识和资源。是否存在该过程必不可少的JavaScript库?除了<canvas>标记外,我们还需要注意其他哪些HTML?

Answers:


9

您应该注意音频视频标签。如果您需要为已保存的游戏等保存大量数据,则网络存储至关重要。

已经有一些Javascript html5游戏框架,秋叶原非常流行。

至于其他库,JqueryFunctional Javascript是我的最爱2。


每个框架的优势是什么?哪一个是最简单,最健壮且最干净的代码?“功能性Javascript”一词中的“功能性”一词听起来很有趣,它的真正含义是什么?您会向pythonist建议哪个框架?

Web存储提供了数据库不能提供的功能?
expiredninja 2014年

@expiredninja数据库实际上会更好,但是Web存储对于用户计算机而言是本地的。没有托管服务,而且比进行ajax调用等还快。与现代基于浏览器的游戏所使用的技术相比,这个答案(略)已经过时。
jdeseno 2014年

6

已经有两个框架:GameQueryAkihabara,这是jQuery的插件,可以执行一些与游戏相关的活动,例如动画,对精灵进行分组,检测碰撞并读取玩家输入。


4

只是为了投入更多资源,请查看RaphaelJS。这是一个非常不错的SVG绘图和动画库,具有一个不错的API。不要忘记查看演示。

总的来说,我建议使用<canvas>标记而不是直接的DOM操作(例如,使每个精灵自己拥有一个标记,<div>以使命中测试非常简单)。很容易使DOM操作出错并表现不佳,而传统的2d开发策略在HTML画布上效果很好。


3

除了现有的一些游戏制作框架之外,您还应该了解Burst Engine,它是一个JS框架,用于在HTML5 Canvas中显示基于SVG的动画:

http://burst.bocoup.com/

到目前为止,我已经看到人们提到了and标记,但是还有其他一些对JS / HTML游戏开发至关重要的DOM,包括将EventListener回调添加到元素中,以实现诸如“ mousemove”和“ mousedown”事件之类的事情。例如,这将使用它可以找到的第一个canvas元素并将其设置,以便在您单击画布时,它将调用您定义的名为“ shootAtClick”的函数:

document.getElementsByTagName(“ CANVAS”)[0] .addEventListener('mousedown',ShootAtClick,false);

本示例中,您可以看到它的作用,其中我将Akihabara引擎扩展为接受基本的鼠标控制。(按Z开始,使用箭头键移动,单击鼠标朝光标方向射击。)


3

了解哪些浏览器支持哪些HTML5组件。

尽管随着时间的流逝,跨浏览器的兼容性变得越来越好,并且变得更加统一,但仍不能完全平等地支持某些较新的组件。

本地存储可能会因浏览器而有所不同,对于传统支持,您肯定需要使用jStorageYUI Storage Lite之类的库。

Web套接字也可能具有特定于浏览器的差异,但是socket.io看起来像一个有前途的库,提供了方便的抽象。

音频兼容性是一个非常重要的组件,需要针对不同的浏览器使用不同的声音文件:http : //html5doctor.com/native-audio-in-the-browser/

Chrome有两个重要的音频错误,例如无法播放简短的音频文件,并且同时播放许多声音可能会使整个浏览器崩溃。

最主要的是要了解浏览器的差异,使用库进行抽象并根据需要提供传统支持。


1

HTML和JavaScript确实是游戏开发的非常差劲的平台,但是在您决定开发一种游戏之前,这并不重要。对于第一人称射击游戏,RTS或益智游戏,答案将完全不同。

请注意,您开始得到含糊不清,动摇不定的答案,这些声音似乎看起来很整洁,是随机技术产生的。这是一个警告信号,表明您尚未提出具有特别合理答案的问题。

您也可能会问,编写应用程序需要哪些C ++东西。那要看。告诉我们有关该项目的更多信息,您可能会得到一个有用的答案。

总的来说,有一个原因,几乎所有的网络游戏仍然是Flash。


4
我同意这个问题含糊不清,到处都有答案,但不同意“ HTML和[JS]是……游戏开发的不良平台”。还记得Google的吃豆人涂鸦吗?直接的HTML和JS。我认为某种休闲游戏可以在该平台上很好地运行,并且使用网络的人已经有了运行时。(=
drhayes,2010年

1
哇,吃豆人 开创性的。除了技术演示外,没有人在游戏中使用HTML / JS是有原因的。
约翰·豪格兰德

1
@Edmundito:如果这就是您认为此“问题”应该解决的方式,则应将其标记为CW。
杰西·多尔西

12
-1无价值的答案。如果您认为网络游戏不是一个好的平台,请坐下来。我不知道为什么会有这么多的反对意见,也许其他人也有您的意见,但这完全没有回答这个问题。
Ricket 2010年

1
伙计们,别生气了。2010年的答案与2014年的答案截然不同。我现在有很多HTML游戏在商店中。
John Haugeland 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.