关于 Mario.js — World 1-1 Remake
Mario.js 是由开发者 Garrett Johnson 编写的 NES 游戏第一关的复刻版,最初是为了练习引擎开发。它底层没有使用任何游戏框架:主循环、画面滚动、碰撞检测、精灵动画和渲染顺序,全都是用原生 JavaScript 手写而成。
正因如此,它是重温 World 1-1 的绝佳方式。这一关没有一行教程文字,却教会了整整一代人如何玩平台跳跃游戏:第一只 Goomba 教你跳跃,第一个 ? 块教你从下方顶击,而水管则告诉你这个世界里藏着秘密。
作者自己的笔记解释了其设计思路:敌人会在出现在画面上之前稍早激活,碰撞箱比精灵图略宽松一些,各图层按固定顺序绘制——背景、道具、物品、敌人、投射物、地形、玩家,最后是水管,这样 Mario 才能钻进水管。
操作方式
| 按键 | 动作 |
|---|---|
| ← → | 行走 |
| Z | 奔跑 |
| X | 跳跃 |
| ↓ | 进入水管 / 蹲下 |
特色
- 像素级还原 World 1-1 的布局,包括隐藏水管和旗杆
- 不依赖任何框架、从零编写的 60 fps 引擎
- 原版风格的碰撞箱,敌人会在即将滚动进入画面前激活
- Super Mushroom、Fire Flower、Starman、金币和可破坏的砖块
小技巧
- X 是跳跃,Z 是奔跑——和许多 PC 游戏正好相反,手指需要适应一下。
- 从最后一段台阶的顶端起跳时按住 Z,就能抓到旗杆的最高处。
- 试试在水管上按 ↓——其中一根通向特别的地方,和原版一样。
- 如果按键没有反应,请先在游戏内点击一下;游戏框架需要获得键盘焦点。


