这个作业的目标 |
讲述设计,选用的渲染方法,收集到的资料,游戏界面示意图 |
作业正文 |
【我罗斯第一次作业】(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实现控制台渲染 |
|
四、关于游戏界面 |
|
|
|