游戏厅:马力欧兄弟,被 JS 重写的 1985 经典

简介: 本文拆这个复刻项目的源码:引擎怎么分层、关卡数据长什么样、从哪个文件开始读。适合想看横版平台游戏如何用 JavaScript 实现的开发者。

这是经典平台游戏《超级马力欧兄弟》的开源复刻项目,用 Backbone 游戏引擎实现了一个关卡。

本文拆这个复刻项目的源码:引擎怎么分层、关卡数据长什么样、从哪个文件开始读。适合想看横版平台游戏如何用 JavaScript 实现的开发者。

先说清楚:这是源码索引,不是游戏下载站

本文介绍的项目指向一个真实存在的源码仓库。仓库里只有代码:要自己装环境、自己编译;不少经典游戏的重实现项目,原版素材还要自备。它的价值在「能读、能改」,不在「下载即玩」。

仓库怎么组织

代码按功能分目录,docs 存文档,super-mario-bros 存游戏特定数据,src 是核心逻辑,其余目录存辅助模块。src/core.js 是核心抽象,定义了 Sprite、Engine 等基础类,world.js 处理世界逻辑,hero.js 和 character.js 是具体角色实现。这种组织方式便于模块化管理游戏对象和行为。

从哪个文件开始读

从 index.html 开始读,它是入口,定义了脚本加载顺序,揭示了依赖关系和初始化流程。先看它怎么加载 backbone 和游戏模块,理解框架和游戏的整体入口。

阅读路线

按这个顺序读,每一步都建立在上一步之上:

  1. index.html —— 盯脚本加载顺序,特别是 backbone.js 和 main.js 的位置,理解框架依赖和游戏启动流程。
  2. src/core.js —— 盯 Backbone.Sprite 和 Backbone.Engine 的定义,看它们如何抽象游戏对象和引擎运行机制。
  3. src/world.js —— 盯 Backbone.World 和 spawnBackgroundImage 的实现,看世界如何加载背景和角色。
  4. src/hero.js —— 盯 Backbone.Hero 和 update 函数,看主角状态和行为逻辑如何通过 Sprite 抽象实现。
  5. super-mario-bros/level_1-1.js —— 盯关卡数据结构,看 world.js 依赖的具体关卡信息如何组织。

值得抄的实现

  • Backbone.Sprite 和 initialize 函数展示了如何用 Backbone 模式封装游戏对象状态和行为。
  • onAttach 和 onDetach 在 core.js 提供了模块化组件的生命周期管理方式。
  • world.js 的 findCollisions 和 hero.js 的 hurt 交互体现了角色与世界的物理反应逻辑。

先看一眼它的形状

下面几段抄自仓库原文,行号对应当时的代码:

src/core.js 第 14 行:

Backbone.Sprite = Backbone.Model.extend({
   
  defaults: {
   
    name: undefined,

src/world.js 第 13 行:

Backbone.World = Backbone.Model.extend({
   
  defaults: {
   
    name: "",

游戏对象继承 Backbone.Model,状态进 defaults;世界本身也是一个 Model,关卡、背景、角色都挂在世界实例上——这是整个项目最核心的一个设计取舍:复用 Backbone 的属性变更机制来驱动游戏状态,而不是自造一套状态管理。

基本信息

  • 许可证:MIT,语言:JavaScript,仓库 219 star
  • 一句话简介:用 Backbone 游戏引擎编写的一个关卡
  • 源码:Super Mario Bros

(源码部分依据 martindrapeau/backbone-game-engine 的公开代码结构整理,完整读过;细节以仓库当前代码为准。)

版权与免责

  • 每一条的源码许可证以各自仓库为准,二次分发与商用前请逐条核对。
  • 本文只介绍项目与代码,不托管任何游戏文件,也不提供素材包。
  • 收录项目版权归各自作者所有;你是作者且不希望被收录,可以联系删除。
相关文章
|
5天前
|
JavaScript API iOS开发
DeepSeek Harness下载、安装、配置一篇搞定(2026整理,送常用插件)
DeepSeek Harness(DSH)是DeepSeek于2026年开源的MIT协议AI Agent框架,支持插件化组装模型、工具、沙箱与UI,兼容主流大模型。本文提供免Node.js的桌面端安装包(Win/macOS),含详细图文教程及热门插件推荐。
2429 16
|
6天前
|
iOS开发 Docker MacOS
【2026实测】Docker Desktop下载、安装、汉化、配置教程(附官网安装包)
Docker Desktop 是 Docker 官方推出的桌面容器管理工具,集成引擎、CLI、图形界面与 Kubernetes,支持 Win/macOS/Linux。2026 最新版 4.88.1 强化 ARM 原生运行、镜像加速及资源可视化,附中文汉化与国内镜像配置指南。
1067 3
|
云安全 安全 网络安全
|
5天前
|
Linux 开发工具 iOS开发
Codex保姆级教程(下载+安装+登录+使用,含所有版本,2026最新)
Codex是OpenAI推出的开源AI编程智能体,本地运行,可理解整个代码库,支持自然语言指令改代码、执行命令、跑测试、修Bug,兼容Win/macOS/Linux。(239字)
|
6天前
|
安全 算法 定位技术
《高性价比人生指南》完整原版:普通人用最少的资源,过好这一生的底层逻辑~How To Live Better
📖《高性价比人生指南》是一份基于实证、拒绝焦虑的生存手册,倡导以“人生时薪”为视角,重新计算时间、金钱与精力的成本与收益。它不承诺逆袭,只教人算清账:省下的钱若耗掉时间便亏;买体验比买物品更值;睡眠是最高杠杆的健康投资;关系贵在情绪价值而非表面热络;学习重在改变行为而非自我安慰。核心理念:用低成本、高回报的微小行动,换取长期的选择权——不是成为谁,而是掌控自己人生的主动权。
|
18天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
3219 50
|
12天前
|
JavaScript 安全 前端开发
Nodejs Brotli decoder 代码执行漏洞 (CVE-2026-111497)10629
Node.js发布安全更新修复Brotli解码器高危RCE漏洞(CVE-2026-111497),建议受影响版本用户立即升级。
2116 2
|
11天前
|
人工智能 JSON Linux
【保姆级】ComfyUI部署教程(下载+安装+配置+工作流,2026最新)
ComfyUI 是一款开源节点式AI生成工具,支持图像、视频、音频及3D内容创作。通过拖拽连线组合模型加载、提示词、采样等节点,构建可复用、易修改的工作流,兼容SD1.5、SDXL、Flux、Qwen Image等主流模型。

热门文章

最新文章