作业描述 | 详情 |
---|---|
这个作业属于哪个课程 | 班级链接 |
这个作业要求在哪里 | 作业要求 |
这个作业的目标 | 讲述你的设计,你选用的渲染方法,你收集到的资料,和你的游戏界面示意图,和。注意:请详细写出你需要的类,和类的成员函数与成员变量。 |
作业正文 | 我罗斯方块设计方案 |
其他参考文献 | |
项目地址 | 项目GitHub地址 |
小组成员 | 031902517-田剑心 031902637-廖晓玲 061900414-廖智炫 |
一、设计方案
游戏设计包括两个模式:单人模式和双人模式
其中,单人模式为普通的俄罗斯方块
双人模式为此消彼长俄罗斯方块:当玩家方块填满一整行时,会消除这行方块,然后使得玩家二的方块底部随机增加一行带空格的。玩家二同理。当一名玩家方块高度达到一个高度时就会结束游戏,该玩家失败。
游戏设计以下几个类:
- 方块类(Squre):负责方块的状态描述(坐标、形状),反馈给游戏类,接受玩家类的指令
- 玩家类(Player):负责接受输入,计分,控制方块类,方块类与地图碰撞判定,反馈给游戏类
- 渲染类(Render):封装渲染需要的函数
- 游戏类(Game):负责管理整个游戏,接受玩家类的反馈,调用渲染类进行渲染,设定游戏模式
二、渲染方法
本组考虑采用 coino.h 和 windows.h 处理控制台
三、游戏界面示意图
四、类
(一)方块类
属性:
- 四个小方块的坐标
- 四个小方块集合的颜色
方法:
- 顺时针旋转
- 左移
- 右移
- 加速下落
- 指令识别、分发:识别玩家类输入的指令,并执行对应方法
(二)玩家类
属性:
- 计分
- 地图
(3. 姓名)
方法:
- 读入键盘指令
- 碰撞判定:判定对应方块类是否碰到左右边界或下侧方块
- 执行输入的指令
- 消除一行
- 增加一行随机
- 合并方块类:当方块类掉入底端时,将方块类合并至地图类
- 上边界判定:判定是否结束游戏
(8. 设定姓名)
(三)渲染类
方法:
- 按颜色绘制地图
(四)游戏类
属性:
- 玩家1
- 玩家2
- 游戏模式
- 游戏地图
方法:
- 设定游戏模式
- 根据游戏模式,从玩家类读取游戏地图
- 调用渲染类绘制
- 玩家类操作执行,并判定结果
- 调用玩家类执行,增加一行随机方法