这个作业属于哪个课程 | 2020面向对象程序设计 |
---|---|
这个作业要求在哪里 | 我罗斯方块 |
这个作业的目标 | 讲述你的设计,你选用的渲染方法,你收集到的资料,和你的游戏界面示意图,和。注意:请详细写出你需要的类,和类的成员函数与成员变量。 |
作业正文 | 博客园 |
github地址 | github |
其他参考文献 | 如何做一个超低配俄罗斯方块(已完结) |
c++俄罗斯方块(一):程序设计 | |
C语言俄罗斯方块 | |
小组成员 | 学号 |
肖清江 | 131901121 |
陈上委 | 031902303 |
黄朝威 | 031902309 |
渲染方法不限制,无论是控制台、绘图还是游戏引擎。但必须使用 cpp 编写代码。
注意不同方块的共性和特性。
使用git进行协作。
组队人数
2-3人
博客要求
在5.6作业结束前发布一篇博客,讲述你的设计,你选用的渲染方法,你收集到的资料,和你的游戏界面示意图,和。注意:请详细写出你需要的类,和类的成员函数与成员变量。
渲染方式
目前是使用Windows.h,以后可能会学QT
以下这张图是粗糙实现的游戏界面,以后还会改动,不是最终界面,目前是使用win32头文件<Windows.h>编程,以后可能会尝试学一下QT再来重新做;
设计思路:
主要参考了传统俄罗斯方块的玩法,再加入作业要求的双人对战和此消彼长的功能;
以下为几个类的分工
方块类:实现方块的基本操作;包括左移、右移、变形、随机生成、加速下落、普通下落等;
游戏类:实现游戏进行的一些操作;包括消行、增行、积分累计、显示分数、计时器等;
玩家类:实现玩家操作与游戏之间的联系;包括按键检测和重新开始等操作;
渲染类:实现游戏界面的设计和创建、消息循环和屏幕刷新等操作;
你可能需要以下类,方块类(分别代表 4 种方块种类),玩家类(代表每一个玩家),渲染类(封装渲染需要的函数),游戏类(管理整个函数)
类和函数
大体构造设计:
方块类:
int CreateRandom();//随机生成方块
void PaintSquare();//画方块
void Squaredown();//方块下落函数
void Squaredownquicker();//方块加速下落函数
int CanSquareLeft();//方块左移
int CanSquareRight();//方块右移
void ChangeSquare();//方块变形
游戏类:
void DestoryOneLineSpare();//消行函数
void ShowScore();//显示分数函数
void OnTimer();//计时器
void AddOneLineSpare();//增行函数
int AddScore();//积分增加函数
玩家类
int keyhit1();//玩家1按键检测函数
int keyhit2();//玩家2按键检测函数
void OneMoreReturn();//计时器清零,重新开始游戏
渲染类
WNDCLASSEX wc;//创建窗口类wc
RegisterClassEx(&wc);//注册窗口
CreateWindowEx()//创建窗口
ShowWindow();//显示窗口
void paintBack();//设置背景
int CanGameBegin();//游戏开始函数
int CanGameOver();//游戏结束
void update_screen();//屏幕刷新
while(GetMessage()){}//消息循环;