纯 TypeScript 写的浏览器街机厅:8 款经典游戏,35 kB,零框架
来源:dev.to — 2026-09-19
📋 概述
作者开源了 retro-arcade:贪吃蛇、俄罗斯方块、打砖块、Flappy、2048、扫雷、数独、五子棋八款游戏共用一套街机柜界面,打开即玩,键盘与触屏都能操作。技术上是纯 TypeScript 加 Canvas 2D,运行时零依赖,整个构建约 35 kB(不含字体),带 269 个单元测试与 28 个 Playwright 端到端测试,全部跑在 CI 里,MIT 授权。文章重点讲了「一个柜体装八款游戏」的接口设计与规则渲染分离。
🔑 核心要点
- 一款游戏只实现一个接口,通过 GameContext 拿到音效、存储、输入与结果卡片能力,于是八款游戏共享同一套暂停、静音、返回行为。
- logic.ts 只放状态与规则,不碰 DOM 和 Canvas,随机源以参数注入,测试因此可复现。
- 增加第九款游戏不需要改动外壳,只写自己的规则实现。
- 体积与测试:约 35 kB gzip、零运行时依赖,269 个单测加 28 个端到端测试全在 CI 中执行。
💡 金句
加第九款游戏不用动外壳,八个游戏共用一套结果卡片、暂停与静音。
👍 0
👎 0
← 返回 dev.to 首页