这次作业属于哪个课程 | 2020面向对象程序设计(福州大学-数学与计算机科学学院) |
---|---|
作业要求 | 我罗斯 |
作业目的 | 讲述你的设计 你选用的渲染方法 你收集到的资料 你的游戏界面示意图 |
参考文献 | c++俄罗斯方块类 |
项目地址 | Github地址 |
小组成员 | 钟睿如 031902243 |
刘雨欢 031902240 |
设计方案
双人俄罗斯方块,对手消一行自增一行,通过键盘上的’w’, ’a’, ’ s’, ’d’和’↑’, ’←’, ’↓’, ’→’来控制方块的旋转、下移、左移、右移。
所需要的类
方块类
- 方块变量
方块颜色,方块形状(存在数组中),方块对应的类型,方块当前的位置 - 成员函数:
-
产生方块的函数:通过方块ID对应不同方块的颜色、形状等信息,并使方块到达的位置标记为1,其他位置标记为0,每隔一段时间调用;
-
方块移动函数:使方块左右移动,若到达边框边界则不可移动;
-
方块旋转函数:实现方块的旋转(通过转置位置数组实现);
-
预览函数:向玩家展示下一个方块;
-
方块下落函数:通过并发使方块边下落边改变形状;
游戏类
- 成员变量:
- 是否消行(bool)
- 游戏是否结束(bool)
- 玩家输入的检测
- 成员函数:
- 检测消行的函数:当方块积满一行时消去;
- 增加一行的函数:当一方的方块积满一行时,令其对手增加一行;
- 判断游戏是否失败:当方块累积达到界面顶部则该玩家失败;
- 控制下落速度的函数:根据玩家等级来动态判定方块下落速度。
玩家类
- 成员变量:
- 玩家得分(每消一行就加分)
- 玩家等级(达到一定等级增加方块下落速度)
- 成员函数:
- 计算分数的函数:记录双方玩家的分数并显示;
- 计算等级的函数:当分数到达一定值,提高等级;
渲染类
- 成员变量:
- 边框位置信息
- 大界面的位置信息
- 对玩家的提示信息
- 成员函数:
- 渲染边框的函数:绘制固定的边框和给玩家的游戏提示;
- 渲染游戏的函数:根据方块信息不断更新绘制游戏的主界面;
- 判断是否到达边界的函数:若方块已到达边界,则不再继续绘制
渲染方法:通过调用Win32 API绘制窗口