现在为止,一直都是通过键盘向下键往下移动方块的。实际游戏当中方块自己会往下掉。这又是怎么做的呢。
像这样自动的行为,从开发的角度来说,就是定时运行一段代码。
那我们就是需要在一定的时间间隔运行让方块下落的代码。
一定的时间间隔是怎么做的呢?首先我们要告诉系统我需要一个定时。这个函数是SetTimer。每次游戏开始的时候,也就是点了开始按钮的时候,我告诉系统说我需要一个定时器。
void Panel::start()
{
this->SetTimer(ID_TIMER,100,NULL);
...
}
SetTimer第一个参数是给定一个Timer的ID号。我把这个ID好DEFINE了一下。
#define ID_TIMER 1000
第二个参数是Timer的时间间隔,以毫秒计,100也就是代表的0.1秒。
最后一个参数是每个0.1秒后系统会自动调用的函数。NULL是指不指定额外的函数,让当前Wnd的标准定时函数(处理WM_TIMER消息的函数)来处理。
如何增加当前Wnd(也就是Panel的)标准定时处理函数呢。这和处理所有其他系统消息都是一样的。我们来回忆一下前几节我们是如何处理WM_PAINT消息的:
在类视图中选中Panel,打开属性窗口,选中消息,找到WM_PAINT消息,增加处理函数。
对WM_TIMER的处理方式也是一样的。
在类视图中选中Panel,打开属性窗口,选中消息,找到WM_TIMER消息,增加处理函数。
在产生的OnTimer函数中,我们调用moveDown函数。
void Panel::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if (element!=NULL) element->moveDown();
Invalidate(false);
CWnd::OnTimer(nIDEvent);
}
大功告成,运行试一下吧
- 大小: 194.9 KB
分享到:
相关推荐
俄罗斯方块 填充 华为 第四届编程大赛 2012 决赛试题 在2012年5月26日举行的第四届华为编程大赛决赛试题 在保存的时候图片没有保存下来,但是题目文字在
最简单的俄罗斯方块来啦!虽然有一些卡,但是在接下来载上的作品,肯定不负众望!
从游戏的基本玩法出发,主要就是俄罗斯方块的形状和旋转,我们在设计中在一个图片框中构造了一个4*4的网状小块,由这些小块组合成新的形状,每四个小块连接在一起就可以构造出一种造型,因此我们总共设计了7中造型,...
自己用SDK写的俄罗斯方块游戏,有兴趣的可以下来看看。
俄罗斯方块原名是俄语Тетрис(英语是Tetris),这个名字来源于希腊语tetra,意思是“四”,而游戏的作者最喜欢网球(tennis)。于是,他把两个词tetra和tennis合而为一,命名为Tetris,这也就是俄罗斯方块名字...
经典俄罗斯方块android源代码,原来eclipse工程代码有不少报错导入到android studio工程也有很多问题,在最新版本android studio上已修正编译通过,android 8.0手机测试正常,游戏分5个等级,操作按键用原生控件比较...
C++实现的QT小游戏俄罗斯方块,和游戏机中的体验相同,直接下载下来在QT上运行就可以了
C++最经典俄罗斯方块游戏代码(高仿),完美复原原游戏,好玩到停不下来 C++最经典俄罗斯方块游戏代码(高仿),完美复原原游戏,好玩到停不下来 C++最经典俄罗斯方块游戏代码(高仿),完美复原原游戏,好玩到停不...
2、支持录像功能,能把每一步操作记录下来进行回放(如果没有结束可继续操作); 3、记录的每一步操作包括时间,可以调整回放速度(可以进行文件存储); 4、支持扩展方块类型,参考范例自定义方块形状; 5、绘制...
自己动手做的俄罗斯方块的小游戏,里面原码和注释都有,很详细。没有做声音,没有加当游戏结束后的操作。一旦游戏结束后,需手动结束游戏。
陈广 C# 俄罗斯方块源码,已在.net 2005 测试通过。见网友写好的,当下来学习一个,故想一起分享。 声明:该源码只做交流学习之用。
非常好用的俄罗斯方块游戏的实现代码和报告,算是比较详细的了,想学习可以下来看看。
这里面有好几个俄罗斯方块的实现,如果有兴趣可以下下来看看啊
这款游戏的规则与其他的俄罗斯方块基本相同,由四个小正方形联结成的块从上到下掉落到10*20的桶中,堆满一层及消除一行。 这个程序的不同之处在于,它的图形精致、难度跨度大,并且新增了落地延时、方块半周旋转键、...
这是用C语言写出来的俄罗斯方块,基于EASYX图形库,编译器VC++6.0,有兴趣的可以下来看看。
由小方块组成的不同形状的板块陆续从屏幕上方落下来,玩家通过调整板块的位置和方向,使它们在屏幕底部拼出完整的一条或几条。...没有被消除掉的方块不断堆积起来,一旦堆到屏幕顶端,玩家便告输,游戏结束。
俄罗斯方块</title> [removed] var TETRIS_ROWS = 20; var TETRIS_COLS = 14; var CELL_SIZE = 24; // 没方块是0 var NO_BLOCK = 0; var tetris_canvas; var tetris_ctx; // 记录当前积分 var curScore = 0; /...
文档内介绍了游戏的发展史,俄罗斯方块的出现时间和背景,其中有该游戏制作的详细步骤,据此可以将本游戏制作下来,仅供借鉴。
由小方块组成的不同形状的板块陆续从屏幕上方落下来,玩家通过调整板块的位置和方向,使它们在屏幕底部拼出完整...没有被消除掉的方块不断堆积起来,一旦堆到屏幕顶端,玩家便告输,游戏结束。 用vs2010的C++开发游戏!
自己写的一个Java版俄罗斯方块程序; 界面做的中规中矩,每种形状颜色都不相同; 程序控制还可以,没什么大的Bug; 消磨时间的时候可以Down下来玩玩; 完全可以做课程设计!!!