C++ vs2019 基于MFC实现俄罗斯小方块游戏

–文件可自取,提取码 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){
   
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值