网页版的在线红白机游戏,怎么做到的?

网页版的在线红白机游戏,怎么做到的?

网管小贾 / sysadm.cc

我有一哥们“烧鸡”,大名白赞记。

光听名字就感觉挺大气是吧,其实和我一样就是个不起眼的普通90后。

虽说这小子年纪轻轻,人却比较怀旧,尤其痴迷红白机之类的复古游戏(当然我也喜欢)。

很奇怪的是到现在好像有两个月没见着这小子了,没成想前两天在菜市场门口给撞上了。

搁以前只要一打照面这小子铁定三句话不离游戏,不过这回好像有点不一样了。

我一瞅他购物袋里那一片绿油油就大概知道怎么回事了。

果不其然,这小子一上来就和我吐槽最近过得有多惨,然后又怀念上以前那小日子有多美。

以前划水摸鱼、带薪拉屎,想怎么玩就怎么玩,别提多得劲了,可如今日薄西山、今非昔比,好日子是一去不复返啊!

自从换了新东家,不但工作忙得脚后跟直打后脑勺,而且上下班通勤时间都比原先拉长了好多。

这小子一顿扒拉扒拉,直言少壮不努力,老大徒伤悲,这整得都没空玩游戏了。

我去,这小嘴儿巴巴的,我愣是插不上话!

得,江山易改,这本性难移啊,我一瞅这小子还这副德性,硬是把想劝慰的话又给咽了回去。

好么,接着听这小子闲聊扒拉,结果他告诉我,还好有时还能偷懒玩一会在线红白机游戏。

“只要打开浏览器就行,不用安装任何软件,随时随地方便非常。”

“哦,是么,还能这么玩?呵呵...”,我得配合尬笑一下,做出我非常好奇的样子接着听他吹。

我心想他说的这个在线红白机游戏我知道,就是通过 Web 网页呈现,并且可以和正常模拟器一样地玩游戏。

这个我是见过,没啥新鲜,瞧这小子眉飞色舞那得瑟样......

不知道是不是我当时的表情演技有点过劲儿,他顿了一下,冷不丁地问了我一句:“这玩意挺好挺方便,你有空也玩两把哈!只是不知道这玩意是啥原理,怎么给整出来的,挺牛叉滴!”

俗话说,言者无心,听者有意!

过后三言两语我打发了这小子,事后在回家的路上我就琢磨了,是哈,这玩意是怎么做到只要打开网页就能玩红白机游戏的呢?

JSNES

带着疑问,我打开了电脑开始在网上搜索,心里正猜测这个红白机在线玩功能是不是基于 JS 的,还是说有其他高深的知识在里面。

果然很快我找到了 Github 上的一个项目:JSNES 。

https://github.com/bfirsh/jsnes

作者 bfirsh 大神还有一个个人主页:

https://jsnes.org/

我们打开看看,简洁的全黑页面显得格外有内涵(花里胡哨你又说有艺术范),表格中简单罗列了几个用于演示的游戏。

随便点开一个游戏,比如 Concentration Room ,页面跳转并开始加载游戏。

不一会儿游戏加载完毕,我们就可以开始玩了。

在此期间点击右上角的 Controls 按钮可以调整修改自己惯用的按键。

很神奇对吧,操作也不复杂,很明显它就是基于 JavaScript 的一个 NES 模拟器。

那么这玩意怎么实现的呢?

关于 JSNES 的介绍倒是很简单,然而介绍页上面涉及到的诸如如何安装等等的 JS 理论知识却着实难倒了我,毕竟我只能算是半个野生程序员,稍微复杂一点的知识我就抓瞎了。

嗯,既然是 JS 写的,那么肯定是跑在浏览器上,我猜应该和服务端关系不大。

OK,那我们就来大胆一试吧!

测试 JSNES

怎么试?

我的思路很简单,就是将项目代码放到 Web 服务器上,然后用浏览器打开跑一跑看看,希望有门。

好,首先将 bfirsh/jsnes 源代码下载下来(文末统一下载)吧。

接着打开压缩包,找到文件夹 example ,将它释放出来备用。

这个 example 文件夹内有四个文件。

InterglacticTransmissing.nes - 演示游戏 ROM 文件nes-embed.html - 网页文件nes-embed.js - 自定义脚

比丘资源网 » 网页版的在线红白机游戏,怎么做到的?

发表回复

提供最优质的资源集合

立即查看 了解详情