# Tereis 基于 C++、Win32 API 和 GDI/GDI+ 实现的俄罗斯方块课程大作业。 项目提供两种主要玩法: - `经典模式`:标准俄罗斯方块,强调移动、旋转、消行和生存。 - `Rogue 模式`:在标准玩法基础上加入升级、强化、主动技能、危险等级和局内构筑。 当前工程可直接在 Windows 下编译运行,适合作为课程展示、实验报告和源码答辩使用。 ## 项目特点 - Win32 图形界面程序,不依赖第三方游戏引擎 - 支持键盘操作、暂停、重开和返回主菜单 - 支持主菜单、帮助页、升级选择界面和结算反馈 - Rogue 模式包含强化系统、主动技能和特殊方块机制 - 支持背景图、图标、背景音乐和视频复活功能 - 提供 MinGW 构建脚本,以及 VS Code / Dev-C++ 运行说明 ## 当前已实现内容 ### 1. 基础玩法 - 方块生成、移动、旋转、软降、硬降 - 碰撞检测、落地固定、消行、游戏结束判定 - 预测落点显示 - 重新开始、暂停、返回菜单 ### 2. 界面与资源 - 自定义窗口界面 - 图标资源 - 背景图片 - 背景音乐 - 帮助页与强化图鉴 ### 3. Rogue 模式 - EXP 与等级系统 - 三选一 / 六选二强化系统 - 升级后强化选择 - 危险等级和底部封锁区 - 主动技能: - `C / Shift` 备用仓 - `Z` 黑洞奇点 - `X` 清屏炸弹 - `V` 空中换形 - 特殊方块与连锁效果: - 爆破核心 - 棱镜激光 - 十字方块 - 彩虹方块 - 方块改造 ### 4. 额外功能 - 死亡后看本地视频复活一次 - 消除与技能清除特效 - 升级冲击波 / 进化冲击等升级联动效果 ## 目录结构 ```text Tereis/ ├─ src/ │ ├─ include/ 头文件 │ ├─ source/ 源文件 │ └─ resources/ Windows 资源文件 ├─ assets/ │ ├─ audio/ 音频资源 │ ├─ icons/ 图标资源 │ ├─ images/ 图片资源 │ └─ video/ 复活视频资源 ├─ report/ 报告与整理材料 ├─ .vscode/ VS Code 配置 ├─ .vscode-build/ 本地构建输出目录 ├─ build-mingw.ps1 MinGW 构建脚本 ├─ README.md 项目总说明 ├─ VSCode运行说明.md VS Code 运行说明 └─ Dev-C++运行说明.md Dev-C++ 运行说明 ``` ## 环境要求 - Windows - PowerShell - MinGW-w64 - `g++.exe` - `windres.exe` - 如需调试:`gdb.exe` 脚本会优先使用系统 `PATH` 中的 MinGW;如果没有加入 `PATH`,也兼容常见安装路径 `C:\mingw64\bin\`。 ## 构建与运行 在项目根目录执行: ```powershell powershell -NoProfile -ExecutionPolicy Bypass -File .\build-mingw.ps1 ``` 构建成功后,生成文件位于: ```text .vscode-build\mingw\Tetris.exe ``` 如果希望构建后直接运行: ```powershell powershell -NoProfile -ExecutionPolicy Bypass -File .\build-mingw.ps1 -Run ``` 注意: - 如果提示 `Tetris.exe: Permission denied`,通常是程序还在运行,先关闭游戏窗口再重新构建。 - 项目依赖 `assets/` 下的图标、图片、音频和视频资源,提交或运行时不要删掉这些文件。 ## 操作说明 ### 通用操作 - `← / A`:左移 - `→ / D`:右移 - `↑ / W`:旋转 - `↓ / S`:软降 - `Space`:硬降 - `P`:暂停 / 继续 - `R`:重开当前对局 - `M`:返回主菜单 ### Rogue 模式附加操作 - `C / Shift`:备用仓 - `Z`:黑洞奇点 - `X`:清屏炸弹 - `V`:空中换形 ### 复活 - 死亡后按 `V` 播放本地视频,可复活一次 ## 文档说明 - [VSCode运行说明.md](./VSCode运行说明.md):适合直接在 VS Code 中构建、运行和调试 - [Dev-C++运行说明.md](./Dev-C++运行说明.md):适合作为备用运行方案 - [report/list.md](./report/list.md):项目阶段清单 ## 课程展示建议 如果用于课堂演示,建议优先展示以下内容: 1. 主菜单与帮助页 2. 经典模式基础玩法 3. Rogue 模式升级界面 4. 特殊方块与主动技能 5. 视频复活功能 ## 说明 本项目为课程设计 / 大作业用途,代码风格以过程式实现为主,便于和课程内容对照理解,不以复杂架构设计为目标。