俄罗斯方块课程设计

本文详细介绍了如何使用MFC设计俄罗斯方块游戏,涵盖了方块下落、移动、叠加、变形、消行等功能的实现。通过游戏类CTetrisGame中的成员函数,实现了游戏的运行流程,包括地图绘制、方块随机产生、碰撞检测、消行处理等关键步骤。
摘要由CSDN通过智能技术生成
  • 项目描述

1.1功能描述

使用MFC设计一款俄罗斯方块。实现方块下落,方块移动,方块叠加,方块变形,消行等功能。

1.2所需技术

MFC双缓冲绘图,方块移动,下落,叠加,变形,消行处理。

  •  总体设计

2.1运行流程

如附录图2-1俄罗斯方块运行流程图所示。

第三章  详细设计

3.1CTetrisGame类的成员函数与变量

游戏类的成员函数

bool gameOver();//游戏结束判断

void rectLineDel();//满行进行消行处理

bool rectChange(bool bufTmp[][4],CPoint &pot);//方块变形处理

void rectMove(int iDirect);//方块移动

bool hitJudge(bool bufTmp[][4],int iDirect,CPoint &pot);//方块碰撞判断,包含移动处理

void willRectProduce();//下一个方块随机产生

void fontDraw(CDC* pCDC);//绘制游戏界面的文字

void willRectDraw(CDC *pCDC);//绘制将要出现的方块

void mapDraw(CDC * pCDC);//绘制游戏的地图

void gameStart();//开始游戏

游戏类的成员变量

bool m_bEndFlg;//游戏结束判断

CPoint m_potNow;//当前掉下方块的左上点的位置

int m_iScore;//分数

bool m_bufMap[MAX_ROW][MAX_COL];//游戏的地图

bool m_bufNow[MIN_ROW_ROL][MIN_ROW_ROL];//当前这在掉落的方块

bool m_bufWill[MIN_ROW_ROL][MIN_ROW_ROL];//将要出现的方块

说明:后面所说的块是指4*4的二维数组,地图块是指整张游戏的背景。

3.2方块掉落,平移,变形过程绘制mapDraw

所有实现是通过绘制一个一个的方块实现的。

//绘制游戏的背景,正在下落的,和已经堆积的

void CTetrisGame::mapDraw(CDC *pCDC)

{

int iRow = 0;

int iCol = 0;

CPen penMap;                          

penMap.CreatePen(PS_SOLID,1,RGB(0,0,0));   //定义白色画笔绘制蛇的边框,第一个参数代表

pCDC->Sel

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值