添加完善说明
This commit is contained in:
@@ -1,68 +1,98 @@
|
||||
# Tereis
|
||||
|
||||
基于 C++ 与 Windows API 实现的俄罗斯方块课程项目。
|
||||
基于 C++、Win32 API 和 GDI/GDI+ 实现的俄罗斯方块课程大作业。
|
||||
|
||||
本项目使用 MinGW 进行构建,当前已完成基础窗口框架、方块逻辑、绘图显示与资源编译接入,适合作为《大学计算》程序设计大作业使用。
|
||||
项目提供两种主要玩法:
|
||||
|
||||
## 项目简介
|
||||
- `经典模式`:标准俄罗斯方块,强调移动、旋转、消行和生存。
|
||||
- `Rogue 模式`:在标准玩法基础上加入升级、强化、主动技能、危险等级和局内构筑。
|
||||
|
||||
项目目标是实现一个可运行的桌面版俄罗斯方块程序,包含以下核心内容:
|
||||
当前工程可直接在 Windows 下编译运行,适合作为课程展示、实验报告和源码答辩使用。
|
||||
|
||||
- 创建 Windows 游戏窗口
|
||||
- 实现方块生成、移动、旋转与下落
|
||||
- 实现碰撞检测、方块固定与游戏结束判定
|
||||
- 实现消行逻辑与基础分数系统
|
||||
- 实现界面绘制与部分资源显示
|
||||
- 提供 MinGW 构建脚本和 VS Code 调试配置
|
||||
## 项目特点
|
||||
|
||||
- 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 资源脚本
|
||||
│ ├─ include/ 头文件
|
||||
│ ├─ source/ 源文件
|
||||
│ └─ resources/ Windows 资源文件
|
||||
├─ assets/
|
||||
│ ├─ icons/ 图标资源
|
||||
│ ├─ images/ 图片资源
|
||||
│ └─ audio/ 音频资源
|
||||
├─ .vscode/ VS Code 配置
|
||||
├─ .vscode-build/ 本地构建输出目录
|
||||
├─ report/ 实验报告材料与草稿
|
||||
├─ build-mingw.ps1 MinGW 构建脚本
|
||||
├─ list.md 项目阶段划分
|
||||
├─ VSCode运行说明.md VS Code 使用说明
|
||||
└─ README.md 项目说明
|
||||
│ ├─ 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++ 运行说明
|
||||
```
|
||||
|
||||
## 开发阶段划分
|
||||
|
||||
整个程序按 6 个阶段拆分实现:
|
||||
|
||||
1. 窗口创建与程序框架搭建
|
||||
2. 游戏区域与方块数据结构设计
|
||||
3. 方块生成、移动与旋转功能
|
||||
4. 碰撞检测与方块固定逻辑
|
||||
5. 消除逻辑与分数系统
|
||||
6. 界面完善与创新功能扩展
|
||||
|
||||
详细内容见 [list.md](./list.md)。
|
||||
|
||||
## 构建与运行
|
||||
|
||||
### 环境要求
|
||||
## 环境要求
|
||||
|
||||
- Windows
|
||||
- MinGW
|
||||
- `g++.exe`
|
||||
- `gdb.exe`
|
||||
- `windres.exe`
|
||||
- PowerShell
|
||||
- MinGW-w64
|
||||
- `g++.exe`
|
||||
- `windres.exe`
|
||||
- 如需调试:`gdb.exe`
|
||||
|
||||
脚本会优先使用系统 `PATH` 中的工具;如果未加入 `PATH`,也兼容 `C:\mingw64\bin\` 下的 MinGW。
|
||||
脚本会优先使用系统 `PATH` 中的 MinGW;如果没有加入 `PATH`,也兼容常见安装路径 `C:\mingw64\bin\`。
|
||||
|
||||
### 使用脚本构建
|
||||
## 构建与运行
|
||||
|
||||
在项目根目录执行:
|
||||
|
||||
@@ -70,58 +100,63 @@ Tereis/
|
||||
powershell -NoProfile -ExecutionPolicy Bypass -File .\build-mingw.ps1
|
||||
```
|
||||
|
||||
构建完成后会生成:
|
||||
构建成功后,生成文件位于:
|
||||
|
||||
```text
|
||||
.vscode-build\mingw\Tetris.exe
|
||||
```
|
||||
|
||||
### 构建并直接运行
|
||||
如果希望构建后直接运行:
|
||||
|
||||
```powershell
|
||||
powershell -NoProfile -ExecutionPolicy Bypass -File .\build-mingw.ps1 -Run
|
||||
```
|
||||
|
||||
### 使用 VS Code
|
||||
注意:
|
||||
|
||||
项目已提供:
|
||||
- 如果提示 `Tetris.exe: Permission denied`,通常是程序还在运行,先关闭游戏窗口再重新构建。
|
||||
- 项目依赖 `assets/` 下的图标、图片、音频和视频资源,提交或运行时不要删掉这些文件。
|
||||
|
||||
- 构建任务 `build Tetris MinGW`
|
||||
- 运行任务 `run Tetris MinGW`
|
||||
- 调试配置 `Debug Tetris MinGW`
|
||||
## 操作说明
|
||||
|
||||
详见 [VSCode运行说明.md](./VSCode运行说明.md)。
|
||||
### 通用操作
|
||||
|
||||
## 资源文件说明
|
||||
- `← / A`:左移
|
||||
- `→ / D`:右移
|
||||
- `↑ / W`:旋转
|
||||
- `↓ / S`:软降
|
||||
- `Space`:硬降
|
||||
- `P`:暂停 / 继续
|
||||
- `R`:重开当前对局
|
||||
- `M`:返回主菜单
|
||||
|
||||
项目包含 Windows 资源文件 `src/resources/Tetris.rc`,其中定义了图标、菜单、快捷键和关于框等内容。
|
||||
### Rogue 模式附加操作
|
||||
|
||||
由于原始 `Tetris.rc` 为 UTF-16 编码,当前构建脚本会在编译时临时转换资源文件编码,并将 `assets/icons/` 中的图标文件一起编译进最终程序,因此资源不再被跳过。
|
||||
- `C / Shift`:备用仓
|
||||
- `Z`:黑洞奇点
|
||||
- `X`:清屏炸弹
|
||||
- `V`:空中换形
|
||||
|
||||
## 报告目录
|
||||
### 复活
|
||||
|
||||
实验报告相关材料已整理到 [report/](./report/):
|
||||
- 死亡后按 `V` 播放本地视频,可复活一次
|
||||
|
||||
- `report.md`:报告正文草稿
|
||||
- `outline.md`:章节提纲
|
||||
- `notes.md`:待补充内容
|
||||
- `images/`:截图和流程图
|
||||
- `code-snippets/`:报告中准备引用的代码
|
||||
- `submission/`:最终提交版文档
|
||||
## 文档说明
|
||||
|
||||
## 当前状态
|
||||
- [VSCode运行说明.md](./VSCode运行说明.md):适合直接在 VS Code 中构建、运行和调试
|
||||
- [Dev-C++运行说明.md](./Dev-C++运行说明.md):适合作为备用运行方案
|
||||
- [report/list.md](./report/list.md):项目阶段清单
|
||||
|
||||
当前项目已完成的工作:
|
||||
## 课程展示建议
|
||||
|
||||
- 修复项目迁移后的路径配置问题
|
||||
- 补充 `.gitignore`
|
||||
- 接入资源文件编译流程
|
||||
- 整理项目阶段清单
|
||||
- 建立实验报告目录结构
|
||||
如果用于课堂演示,建议优先展示以下内容:
|
||||
|
||||
后续可以继续完善的方向:
|
||||
1. 主菜单与帮助页
|
||||
2. 经典模式基础玩法
|
||||
3. Rogue 模式升级界面
|
||||
4. 特殊方块与主动技能
|
||||
5. 视频复活功能
|
||||
|
||||
- 优化界面表现
|
||||
- 完善分数与状态提示
|
||||
- 增加创新功能
|
||||
- 补充测试截图和实验分析
|
||||
## 说明
|
||||
|
||||
本项目为课程设计 / 大作业用途,代码风格以过程式实现为主,便于和课程内容对照理解,不以复杂架构设计为目标。
|
||||
|
||||
Reference in New Issue
Block a user