推箱子游戏 (Push Box Game)

一款运行在 Visual Studio Code 中的经典推箱子益智游戏扩展,内置 90 个精心设计的关卡,支持中文与英文界面切换。
功能特性
- 90 个经典关卡:由易到难循序渐进,覆盖丰富的关卡布局挑战
- Webview 游戏界面:基于 VS Code Webview 渲染,操作流畅、界面美观
- 键盘操作:使用方向键(↑ / ↓ / ← / →)即可移动小人推箱子
- 撤销与重置:支持单步撤销(Undo)和一键重置(Reset)当前关卡
- 关卡导航:可上一关 / 下一关快速切换,或通过关卡选择器直接跳转到指定关卡
- 计时与统计:实时显示剩余箱子数量和已用时间
- 音效系统:内置移动、推动、过关提示音,可随时开关
- 多语言支持:中 / 英双语界面,设置自动持久化(保存到
~/.pushbox-game-lang)
- 通关动画:过关后展示祝贺动画,并自动进入下一关
使用方法
- 在 VS Code 扩展面板中搜索并安装「推箱子游戏」,或直接从源码编译安装
- 点击左侧活动栏的「推箱子」图标,打开游戏侧边栏
- 在侧边栏中点击「开始游戏」启动游戏面板
- 使用方向键移动小人,将所有箱子推到目标点上即可过关
侧边栏命令
| 命令 |
说明 |
| 开始游戏 |
打开推箱子游戏面板 |
| 关卡选择 |
弹出关卡选择器,输入 1–90 直接跳关 |
| 音效开关 |
开启 / 关闭游戏音效 |
| 语言切换 |
在中文 / 英文界面之间切换 |
游戏内按钮
- 上一关 / 下一关:在关卡之间循环切换
- 重置:恢复当前关卡到初始状态
- 撤销:回退上一步操作
从源码构建
# 安装依赖
npm install
# 编译 TypeScript
npm run compile
# 开发模式(监听文件变化自动编译)
npm run watch
编译产物输出到 ./out 目录,之后可在 VS Code 中按 F5 启动扩展开发宿主进行调试。
项目结构
PushBoxForVSCode/
├── package.json # 扩展清单(命令、视图、激活事件等)
├── resources/
│ └── icon.png # 活动栏与扩展图标
├── src/
│ ├── extension.ts # 扩展入口,注册命令与 TreeView
│ ├── gameTreeView.ts # 侧边栏树视图(开始游戏、关卡选择等)
│ ├── gameWebview.ts # 游戏 Webview 面板与界面渲染
│ ├── i18n.ts # 中英文国际化与语言持久化
│ ├── levels/ # 90 个关卡文件(screen.1 ~ screen.90)
│ └── res/ # 游戏素材(墙、箱子、小人、目标点等图片)
└── tsconfig.json
关卡文件格式
关卡使用文本文件描述,字符含义如下:
| 字符 |
含义 |
# |
墙 |
@ |
小人 |
+ / ! |
站在目标点上的小人 |
$ |
箱子 |
. |
目标点 |
* |
已就位的箱子 |
| 空格 |
空地 |
许可证
本项目基于 LICENSE 文件中的条款发布。
| |