–文件可自取,提取码 xhhs–
网盘链接
#主要框架来自于杭电李卫明老师的教学视频(如果真要写的话可以先看他的视频,本文主要记录一些拓展功能的实现)
视频链接
1. 绘制自定义的图形
在4*4(当然也可以随便)的方格(看成二维数组)里把需要的地方随便赋值,画个南瓜饼(把除了四个角都赋值)什么的都行。
2.得分与显示
在game类加上一个数据成员表示这局游戏的分数,消行的时候增加分数(连续消行也可以加的更多)。
显示,绘制一个edit控件,然后对它右键选择创建变量,变量类型设为“值”,类型为int.
它本来的类型是“控件”,这样的话如果要显示就要用到内库的函数来写,比较麻烦,我们把他设置为值 这样就可以直接给他赋值,非常方便。例如:
m_edit = _game.mark;
UpdateData(FALSE);
然后就是下面那条语句了,这涉及到值交换的问题。
值的传递会用到上面你创建控件时自动生成的函数
void CMyboxDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT1, m_edit);
}
简单来说,把参数设置为FALSE代表把值传到控件变量,TRUE代表相反。所以我们这里把他设为FALSE;
点 重新开始 按钮时,别忘了把分数重置为0;
3.变速
首先我想到的办法是基于分数判断,如果分数大于一个值,那么在定时下落的函数里再下落一次,就是本来每个时钟周期本来下降一格,现在让他下降两格,如果再大于某个值的话,就下降三格。(分享的文件代码是这么写的)
if(CanMoveDown()){
if(mark < 15){