Rainbow Islands

Amstrad CPC 版《Rainbow Islands》(1989 年)用 PHP 重制,在浏览器里免费畅玩,保留原版画面和音乐。

▶ 开始游戏

电脑、手机或手柄 · 无需安装 · 无需注册

Bub 在第一座岛上,位于城堡塔楼之间,面前抛出了一道彩虹

趁海水上涨之前向上攀登

海水在身后不断上涨,Bub 必须爬到每个关卡顶端的 G 标牌处。他的武器是彩虹:能击晕敌人,可当作桥和楼梯;跳起后落在彩虹上会把它踩断,断掉的彩虹落下,被压到的敌人会变成钻石。

7 座岛屿、28 个关卡,每座岛的结尾都有一个 Boss,还有水果、奖励、HURRY! 警告、续关画面和结局。

Amstrad CPC 版《Rainbow Islands》的原版加载画面
1989 年磁盘上的加载画面,原样呈现。

七座岛屿

每座岛都有自己的色彩、敌人和 Boss。以下是游戏在浏览器中运行时的截图。

第 1 关,Insect Island:城堡和它的旗帜
Insect Island · 关 1
第 6 关,Combat Island:橙色背景上的粉色方块,两道彩虹
Combat Island · 关 6
第 10 关,Monster Island:夜晚的鬼屋
Monster Island · 关 10
第 15 关,Toy Island:天空中的骰子和扑克牌
Toy Island · 关 15
第 19 关,Doh's Island:打砖块游戏里的砖块
Doh's Island · 关 19
第 26 关,Dragon Island:一面红砖墙
Dragon Island · 关 26
第一座岛的 Boss,一只巨大的蜘蛛
第一个 Boss · 关 4
巨龙,游戏的最终 Boss
最后的 Boss · 关 28

操作方式>

键盘>

← → 行走
↑ 或 Z 跳跃
空格 或 X 彩虹
P 或 Esc 暂停

手柄>

摇杆或十字键行走,A 跳跃,X 或 B 发射彩虹,Start 暂停。可在游戏前或游戏中接入。

手机>

屏幕左半边的任意位置,左手拇指下会出现虚拟摇杆;右侧是 JUMP 和 RAINBOW 按钮。请横向握持手机。

▶ 立即游玩

这个重制版是怎么做的

没有任何东西是重新绘制的:原版磁盘在没有屏幕的 Amstrad CPC 模拟器中运行,模拟器记录了每一次内存写入和每一个演奏的音符。28 个关卡的地图、图块、精灵、字体、调色板、音乐和音效都由此提取。

随后用易读的 PHP 和 JumPHP 引擎重写游戏:同一份代码既能在电脑窗口中运行,也能在 PHP 被编译为 WebAssembly 的浏览器中运行。

提取工具发布在 dsk2jumphp,游戏代码发布在 rainbow-island。

使用 CPC 原版字体的标题画面
标题画面,使用从磁盘中提取的 CPC 字体。

常见问题>
需要安装什么吗?

不需要:游戏直接在浏览器中运行,电脑和手机都可以。首次加载会下载约 10 MB(WebAssembly 版 PHP 和游戏本体),之后全部缓存。

这是原版游戏吗?

这是一个重制版:程序用 PHP 重新编写,但地图、精灵、字体、加载画面、音乐和音效都来自 1989 年的 Amstrad CPC 磁盘。

分数会保存吗?

最高分和选项(音量、语言)保存在你的浏览器中。

可以在浏览器之外玩吗?

可以:有了源代码和 Docker,运行 bin/jumphp run rainbow-island 即可在窗口中带声音地打开游戏。详见 GitHub 仓库。