这个作业属于哪个课程 | 【2020面向对象程序设计张栋班】(https://edu.cnblogs.com/campus/fzu/2020OOP/homework/10729) |
---|---|
这个作业的目标 | 讲述设计,选用的渲染方法,收集到的资料,游戏界面示意图 |
作业正文 | 【我罗斯第一次作业】(https://www.cnblogs.com/dudu340/p/12830787.html |
参考文献 | 【C++ 比较完美的俄罗斯方块(VS2017)】(https://blog.csdn.net/qq_35294564/article/details/82762737) |
项目地址 | (https://github.com/xanxusEX/Tetris) |
项目成员 | 031902142詹珊 031902102方文昱 |
一、关于设计
游戏规则:
1、游戏按键:
W、↑:转换方块朝向
S、↓:加速向下移动
A、←:向左移动
D、→:向右移动
2、具体规则:
以玩家一为例,AD 控制方块左右移动,W 转换方块朝向,S 快速下落,使得方块落到底端。当玩家方块填满一整行时,会消除这行方块,然后使得玩家二的方块底部随机增加一行带空格的。玩家二同理。当一名玩家方块高度达到一个高度时就会结束游戏,该玩家失败。
二、关于类
本次游戏设计了四个类,分别是:
Block:用于管理方块
Player:代表玩家,管理玩家信息、
Game_window:用于管理游戏,控制游戏的进度
Render:用于渲染游戏
而在这四个类中,还含有不同的成员函数。
(1)、Block(方块类):
成员变量:定义方块的形状和颜色
成员函数:
generate_random:随机产生一种方块
block_trans_direction:控制方块的移动方向、
block_falling:控制方块自然下降
block_acceleration:控制方块加速下落
block_move:控制方块左右移动
(2)、Player(玩家类):
成员变量:
key_sys:用于判别该玩家使用的方向键
score:定义该玩家获得的积分
成员函数:
score——add:控制玩家积分的增加
(3):Game_window(游戏类):
成员变量:定义玩家和主地图
成员函数:
Game_start:控制游戏的开始
Map_iniyialization:地图的初始化
Show_score:显示玩家的分数
Block_touch_check:检测方块是否与其他方块或者边界相接触
Line_check:检测方块是否已经满行
Delete_line:消除一行方块
Duel_penalization:对战模式中的惩罚判定
Game_process_check:对当前游戏的进度进行判定
Game_pause:游戏暂停
Game_over:游戏结束
(4)Renser(渲染函数):
成员函数:
set_background:设置背景
set_frame:设置边框
window_update:更新窗口显示
exit_game:退出游戏
三、关于设计
使用windows.h实现控制台渲染
四、关于游戏界面