我罗斯方块游戏设计
这个作业属于哪个课程 | 2020年面向对象程序设计 |
---|---|
这个作业要求在哪里 | 我罗斯方块 |
这个作业的目标 | 发布一篇博客,讲述你的设计,你选用的渲染方法,你收集到的资料,和你的游戏界面示意图。注意:请详细写出你需要的类,和类的成员函数与成员变量。 |
作业正文 代码仓库 |
https://www.cnblogs.com/smallgrape/p/12832073.html |
设计者 |
陈妍羽 031902534 许雅萍 031902541 |
其他参考文献 | https://zhidao.baidu.com/question/1897527644631992500.html |
1.设计方案:
游戏内容
基础内容与俄罗斯方块一样。
俄罗斯方块
区别在于,我罗斯方块是同屏幕,双人对战游戏,双方一人使用 wasd ,一人使用上下左右控制,当一名玩家消去一行,就会让另一名玩家最底下增加随机一行。
详细
以玩家一为例,AD 控制方块左右移动,W 转换方块朝向,S 快速下落,使得方块落到底端。当玩家方块填满一整行时,会消除这行方块,然后使得玩家二的方块底部随机增加一行带空格的。玩家二同理。当一名玩家方块高度达到一个高度时就会结束游戏,该玩家失败。
2.类的设计
1)方块类:随机生成方块;方块坐标形状;是否已固定;是否碰撞边框;左右移动、旋转及下落。
2)玩家类:输入,得分,控制方块类,消行,对方增加一行。
3)渲染类:封装渲染需要的函数,初始化边框、界面。
4)游戏类:管理整个游戏,负责游戏暂停结束。
3)渲染类:封装渲染需要的函数,初始化边框、界面。
4)游戏类:管理整个游戏,负责游戏暂停结束。
方块类:
class Block { private: int positionX[4], positionY[4];//方块的坐标 bool check;//检测方块是否结束进程 int val;//方块下落速度 public: void roundBlock();//随机生成方块 bool collisionDetection();//检测是否碰撞到边框 void myLeft();//左移 void myRight();//右移 void myUp();//顺时针旋转90度 int myDown();//加速下落 };
玩家类:
class Player { private: int fraction;//用来存储得分 char key;//用来存储按键 public: void addition(); //对方增加一行 void eliminateRow(); //判断是否能消行并更新分值 };
渲染类:
class render { private: int length; int width; public: void initialWindow(HANDLE hOut);//初始化窗口 void initialPrint(HANDLE hOut);//初始化界面 void set wall() //设置边框,用于检测碰撞 void gotoXY(HANDLE hOut, int x, int y);//移动光标 };
游戏类:
class Game { private: bool check;//检测游戏是否结束进程 public: void myStop(HANDLE hOut, int block[4][4]);//游戏暂停 void gameOver(HANDLE hOut, int block[4][4], int map[21][12]);//游戏结束 };
3.渲染方式
windows.h 和conio.h
4.界面示意图