浏览器内运行
游戏以网页形式呈现,画面通过 Canvas 元素绘制,音效通过 Audio 元素播放,无需安装额外运行环境。
mariohtml5 · robertkleffner/mariohtml5
用 JavaScript 编写、在浏览器中运行的《Infinite Mario》克隆版,通过 HTML5 的 Canvas 与 Audio 元素实现画面与音效,作者称其为这两个元素能力的一次展示。项目从 Notch(Markus Persson)的 Java 版本移植而来。README 说明背景音乐...
mariohtml5 是一个用 JavaScript 编写、直接在浏览器中运行的《Infinite Mario》克隆版。它不依赖任何插件或原生扩展,而是完全依托 HTML5 的 Canvas 与 Audio 两个元素来完成画面绘制与声音播放。作者在 README 中把该项目定位为「对 Canvas 与 Audio 元素能力的一次展示」,也就是说,它更像一个技术演示,用来证明纯 Web 技术可以承载一个具备完整玩法的横版跳跃游戏。
从来源上看,本项目并非从零设计,而是从 Notch(Markus Persson)的 Java 版本移植而来。Notch 的 Infinite Mario 以程序化生成关卡著称,mariohtml5 延续了这一思路,把原本运行在 JVM 上的逻辑改写为浏览器可执行的 JavaScript 代码。
游戏以网页形式呈现,画面通过 Canvas 元素绘制,音效通过 Audio 元素播放,无需安装额外运行环境。
代码结构对应 Notch 的 Java 实现,便于对照阅读两套实现之间的差异。
作为 Infinite Mario 的克隆,游戏围绕不断向前推进的横版关卡展开。
README 特别提到背景音乐在多数浏览器中存在较多问题,作者认为目前只有 Firefox 4 能正常播放,其余浏览器的兼容情况并不理想。
项目最值得关注的地方,是它如何用当时可用的 Web 标准去复刻一个桌面端 Java 游戏:
README 没有展开说明具体的类结构、帧率控制或碰撞算法细节,因此这里不对实现细节做进一步推断。
README 未提供构建脚本或依赖安装说明。按照项目描述,它是一组面向浏览器的 JavaScript 文件,运行方式应是在浏览器中打开对应页面。由于 README 明确提示背景音乐在 Firefox 4 之外的浏览器上问题较多,实际体验时建议优先考虑作者提到的环境,其他浏览器的具体表现需要自行核验。
这个项目适合作为「把已有游戏移植到 Web 平台」的阅读样本:
id Software 公开的初代 DOOM 源代码,限非盈利使用。README 说明:运行仍需...
DDNet 是 Teeworlds 的一个模组,源自 DDRace,是一款免费的合作型 2D 平台跳...