`
桔红糕
  • 浏览: 41316 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

俄罗斯方块(十四)让方块自己掉下来

    博客分类:
  • CPP
阅读更多

现在为止,一直都是通过键盘向下键往下移动方块的。实际游戏当中方块自己会往下掉。这又是怎么做的呢。

像这样自动的行为,从开发的角度来说,就是定时运行一段代码。

那我们就是需要在一定的时间间隔运行让方块下落的代码。

 

一定的时间间隔是怎么做的呢?首先我们要告诉系统我需要一个定时。这个函数是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 决赛试题 在2012年5月26日举行的第四届华为编程大赛决赛试题 在保存的时候图片没有保存下来,但是题目文字在

    用C语言实现俄罗斯方块(基础)

    最简单的俄罗斯方块来啦!虽然有一些卡,但是在接下来载上的作品,肯定不负众望!

    VB课程设计俄罗斯方块

    从游戏的基本玩法出发,主要就是俄罗斯方块的形状和旋转,我们在设计中在一个图片框中构造了一个4*4的网状小块,由这些小块组合成新的形状,每四个小块连接在一起就可以构造出一种造型,因此我们总共设计了7中造型,...

    SDK写的俄罗斯方块

    自己用SDK写的俄罗斯方块游戏,有兴趣的可以下来看看。

    【Java大作业】俄罗斯方块游戏系统设计与实现

    俄罗斯方块原名是俄语Тетрис(英语是Tetris),这个名字来源于希腊语tetra,意思是“四”,而游戏的作者最喜欢网球(tennis)。于是,他把两个词tetra和tennis合而为一,命名为Tetris,这也就是俄罗斯方块名字...

    俄罗斯方块android源码

    经典俄罗斯方块android源代码,原来eclipse工程代码有不少报错导入到android studio工程也有很多问题,在最新版本android studio上已修正编译通过,android 8.0手机测试正常,游戏分5个等级,操作按键用原生控件比较...

    QT游戏俄罗斯方块

    C++实现的QT小游戏俄罗斯方块,和游戏机中的体验相同,直接下载下来在QT上运行就可以了

    C++最经典俄罗斯方块游戏代码(高仿),完美复原原游戏,好玩到停不下来

    C++最经典俄罗斯方块游戏代码(高仿),完美复原原游戏,好玩到停不下来 C++最经典俄罗斯方块游戏代码(高仿),完美复原原游戏,好玩到停不下来 C++最经典俄罗斯方块游戏代码(高仿),完美复原原游戏,好玩到停不...

    [C#源代码]俄罗斯方块1.0

    2、支持录像功能,能把每一步操作记录下来进行回放(如果没有结束可继续操作); 3、记录的每一步操作包括时间,可以调整回放速度(可以进行文件存储); 4、支持扩展方块类型,参考范例自定义方块形状; 5、绘制...

    自制俄罗斯方块,可以下来玩一玩

    自己动手做的俄罗斯方块的小游戏,里面原码和注释都有,很详细。没有做声音,没有加当游戏结束后的操作。一旦游戏结束后,需手动结束游戏。

    陈广 C# 俄罗斯方块源码

    陈广 C# 俄罗斯方块源码,已在.net 2005 测试通过。见网友写好的,当下来学习一个,故想一起分享。 声明:该源码只做交流学习之用。

    经典的俄罗斯方块游戏实现详细代码和报告

    非常好用的俄罗斯方块游戏的实现代码和报告,算是比较详细的了,想学习可以下来看看。

    c语言写的俄罗斯方块 很经典的

    这里面有好几个俄罗斯方块的实现,如果有兴趣可以下下来看看啊

    0资源分 自编超级俄罗斯方块。。挑战吧

    这款游戏的规则与其他的俄罗斯方块基本相同,由四个小正方形联结成的块从上到下掉落到10*20的桶中,堆满一层及消除一行。 这个程序的不同之处在于,它的图形精致、难度跨度大,并且新增了落地延时、方块半周旋转键、...

    C语言版俄罗斯方块(基于EASYX库)

    这是用C语言写出来的俄罗斯方块,基于EASYX图形库,编译器VC++6.0,有兴趣的可以下来看看。

    Web-俄罗斯方块

    由小方块组成的不同形状的板块陆续从屏幕上方落下来,玩家通过调整板块的位置和方向,使它们在屏幕底部拼出完整的一条或几条。...没有被消除掉的方块不断堆积起来,一旦堆到屏幕顶端,玩家便告输,游戏结束。

    俄罗斯方块

    俄罗斯方块</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; /...

    俄罗斯方块游戏制作文档

    文档内介绍了游戏的发展史,俄罗斯方块的出现时间和背景,其中有该游戏制作的详细步骤,据此可以将本游戏制作下来,仅供借鉴。

    俄罗斯方块C++源代码

    由小方块组成的不同形状的板块陆续从屏幕上方落下来,玩家通过调整板块的位置和方向,使它们在屏幕底部拼出完整...没有被消除掉的方块不断堆积起来,一旦堆到屏幕顶端,玩家便告输,游戏结束。 用vs2010的C++开发游戏!

    JavaSwing之俄罗斯方块2源码

    自己写的一个Java版俄罗斯方块程序; 界面做的中规中矩,每种形状颜色都不相同; 程序控制还可以,没什么大的Bug; 消磨时间的时候可以Down下来玩玩; 完全可以做课程设计!!!

Global site tag (gtag.js) - Google Analytics