《俄罗斯方块》被压缩成60KB的PDF小文件 可在任何浏览器上运行

站长云网 2025-01-13 5iter.com 站长云网

一位聪明的安全分析师已经证明,PDF不仅仅适用于无聊的文档和表格。他成功地将经典的俄罗斯方块游戏压缩到了一个60KB的PDF文件中,该文件可以在浏览器中直接运行。

这个被制作者托马斯-林斯马命名为"Pdftris"的作品,只需点击一下,就能让你玩容易上瘾的方块下落游戏:

https://th0mas.nl/downloads/pdftris.pdf

我们在Firefox上启动了这款游戏,果然,那些四边形积木从临时游戏区滚落下来,仿佛又回到了1984年。

在控制方面,你可以用鼠标点击屏幕上的按钮,这一点也不直观,因此Rinsma还加入了键盘控制--玩家可以用WASD键移动、旋转和丢弃四角形小球。

游戏没有声音,没有颜色,只能在一个不大的浏览器窗口中运行,也许未来的更新会引入这些缺失的部分。

至于Rinsma是如何将所有这些功能塞进一个专为文档设计的文件格式中的,这要归功于很少有人涉足的PDF脚本领域,而这一领域的超级功臣非JavaScript莫属。

为Chrome和Firefox等浏览器提供支持的PDF引擎实际上只支持有限的JavaScript命令集。Rinsma意识到,他可以利用这一点从头开始拼凑出一个类似俄罗斯方块的基本游戏。

Rinsma不得不想出一些笨办法,才能让他的游戏在不同的PDF引擎中正常呈现。他的解决方案是使用PDF注释"字段"的显示/隐藏功能来创建标志性的单色俄罗斯方块像素。

控制操作是另一个挑战。虽然您可以使用屏幕上的按钮,但Rinsma还巧妙地启用了键盘控制功能,允许您在游戏下方的文本输入框中键入文字。输入会发送击键事件,游戏可以将这些事件解释为动作。

用Rinsma自己的词来说,这样做的结果确实很"笨拙"。但这正是这种实验性作品的魅力所在。

在引擎盖下,Pdftris只是隐藏在PDF文件中的普通ASCII文本。您可以下载它并在文本编辑器中打开代码,看看它是如何工作的。或者,您也可以查看Rinsma的GitHub软件仓库,获取更多带有注释的可读源代码。

现在,你可能会想--既然俄罗斯方块都能在PDF文件中运行,肯定不会有人敢把Doom这种疯狂的东西也挤进PDF文件中吧?好吧,Rinsma就知道你会有这种想法。他认为如果使用单一的PDF引擎,"使用正确的技巧"确实是可行的。

责任编辑:站长云网