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

俄罗斯方块(十五)游戏结束

    博客分类:
  • CPP
阅读更多

最后,我们来处理一下游戏结束。

先在Panel中增加一个游戏结束标志

class Panel : public CWnd
{
private:
	bool gameover;

 

构造函数的时候设定他为true;

Panel::Panel()
{
	...
	gameover = true;
}

 

游戏开始时,设定他为false;

void Panel::start()
{
	....
	gameover = false;

 

然后游戏开始正常运行。那什么时候游戏结束呢?看上去应该是障碍块累计到Panel的顶上。再仔细一想,应该是没有办法再增加新的方块的时候,游戏就结束了。

这样,我们需要在新的方块产生的时候,查看一下是否可以产生,也就是产生的方块是不是到边际或者遇到障碍块了。如果是这样则游戏结束。

void Panel::randomCreate()
{
	srand(time(NULL));
	int i = rand() % 4;
	if(i == 0)
		element = new Bar(getWidth()/2,0, this);
	if(i == 1)
		element = new Square(getWidth()/2,0, this);
	if(i == 2)
		element = new ShapeL(getWidth()/2,0, this);
	if(i == 3)
		element = new ShapeT(getWidth()/2,0, this);

	if (element->ifOccupied(element->body)) 
	{
		gameover =true;
		KillTimer(ID_TIMER);
	}
}

 注意这里除了设置gameover标志外,还使用KillTimer系统函数关闭计数器。既然游戏结束了,我们确实没有必要每0.1秒运行俄罗斯方块往下掉一格的事情了。

 

好吧,让我们从Panel上可视的了解到游戏结束了。游戏结束时,我们简单的在界面上显示Gameover字样好了。

void Panel::OnPaint()
{
	CPaintDC dc(this); // device context for painting

	CRect rect;
	this->GetClientRect(rect);
	CBrush brushbg( RGB(125,125,125) );

	if(gameover)
	{
		CString str("game over");
		dc.DrawText( str,rect, DT_CENTER);
	}
	else
	{
		...
 

现在运行一下,我们应该可以看到一个相对完整的俄罗斯方块了。俄罗斯方块的C++演示也就到这章结束了。希望大家能够顺利完成自己的俄罗斯方块,并增加自己的内容。取得好分数。

分享到:
评论

相关推荐

    俄罗斯方块游戏12_增加游戏结束

    传智播客_俄罗斯方块游戏12_增加游戏结束,充分了解java编程

    基于Python的俄罗斯方块游戏设计与实现.zip

    (6)方块下端接触到游戏框下边框或方块时方块停止移动,方块上端接触到游戏框的上边框时结束游戏。 (7)游戏可以同时通过键盘和鼠标来操作。 (8)游戏可以通过按“S”键开始游戏,“P”键暂停和继续游戏,“R”...

    Java版俄罗斯方块小游戏源码

    【关于俄罗斯方块游戏】 游戏简介 俄罗斯方块是一款益智方块类游戏, 这款游戏最初是由苏联的电脑科学家帕吉特诺夫(Alex Pajitnov)于1985年制作的, 作者给了他一个源自希腊字4(tetra)的名字Tetris。 1989年由...

    Java俄罗斯方块小游戏

    通过java编写的俄罗斯方块小游戏,完成俄罗斯方块基本功能及扩展功能,适合初学者练手学习。 基本功能: 方块消行  方块控制  随机生成方块  预览下一方块  游戏状态判断  游戏暂停、结束提醒  退出...

    C#版编写的俄罗斯方块游戏

    本篇介绍用C#编写一个俄罗斯方块程序的原理,以及在C#里面播放声音,保存游戏设置的方法。 游戏界面预览: 菜单预览: 自定义每个小方块颜色功能界面: 游戏主要有四部分组成:Square类,Block类,game...

    设计俄罗斯方块游戏 俄罗斯 C语言编写的俄罗斯方块

    特别精细的俄罗斯方块小游戏设计  熟悉游戏规则很重要,因为这是程序设计的基本要求,也是基本思路。 游戏规则如下:  电脑随机产生4个小方块组成的不同形状的游戏块,从上往下降落。  游戏面板的宽度为12(以...

    基于Android平台的俄罗斯方块--毕业设计

    用java语言开发的基于Android平台的俄罗斯方块手机游戏---毕业设计,开发工具Eclipse

    传智播客_俄罗斯方块游戏程序与API包

    传智播客版《俄罗斯方块游戏开发》视频教程包括14小节: 01_游戏功能演示与说明...消除满行的障碍物 12_增加游戏结束的功能 13_解决定时下落与按下键同时生成障碍物的问题 14_俄罗斯方块游戏开发练习题

    JAVA Swing 制作俄罗斯方块小游戏,课设作品(界面优美,功能完善,适合初学者参考学习)

    java Swing制作的俄罗斯方块小游戏,主题切换、背景音乐等完成众多功能。 基本功能:  方块消行  方块控制  随机生成方块  预览下一方块  游戏状态判断  游戏暂停、结束提醒  退出程序提醒  等级...

    qt实现俄罗斯方块,功能有重新开始,暂停,结束等

    qt实现俄罗斯方块,功能有重新开始,暂停,结束等

    基于Python的PyGame的俄罗斯方块游戏设计与实现 关键词:游戏;Python;俄罗斯方块;算法;功能

    该俄罗斯方块是有Python编写而成的。它具有对游戏的正常操作,可以控制方块下落位置、下落时改变方向,以及对方块的直接下落。该游戏分左右两个界面,左边显示游戏的运行状态,右边显示游戏下一个即将出现的方块,...

    传智播客_俄罗斯方块游戏12_增加游戏结束

    面向对象的基础核心知识点之一,是日后学习JavaEE,JavaME的必备知识;注重基础的代码实例讲解, 让你轻松的学习Java基础知识,为以后学习铺平道路,打好基础;万丈高楼平地起,希望能帮助你!

    俄罗斯方块10游戏

    初始化,取随机方块,取方块颜色,画方块,清除方块,是否可移动,恢复,下降,画下一个方块,左移,右移,旋转,游戏结束,是否填满一行,删除一行,消除动画,清除所有方块动画

    一个用python编写的俄罗斯方块小游戏.py

    俄罗斯方块游戏是一款经典的益智游戏,有PC和手机等多平台版本,既简单又耐玩。通过设计一款贪吃蛇游戏来巩固自己对Python语言的学习,并激发自己对学习编程的兴趣。 1.2 功能要求 1.设计游戏规则、游戏开始等按钮 ...

    传智播客_俄罗斯方块游戏12_增加游戏结束.rar

    传智播客_俄罗斯方块游戏12_增加游戏结束.rar 传智播客_俄罗斯方块游戏12_增加游戏结束.rar 传智播客_俄罗斯方块游戏12_增加游戏结束.rar

    C#俄罗斯方块游戏源码大公开

    俄罗斯方块游戏源码大公开 C#代码编写,支持点NET框架,游戏有易,中,难三个等级控制速度,界面精美,代码写法严谨,是大家不可多得的学习C#编程的好资源。

    C#可视化的俄罗斯方块小游戏源码

    可以直接在debug下选择使用exe...游戏没有写结束过程,只有中间环节以及积分过程。操作为上下左右,下可以加速,速度不快每500毫秒下降一个单位,别修改单个方格的像素大小,后面我的单独处理的,免得越界无法判断。

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

    俄罗斯方块是俄罗斯人发明的。这人叫阿列克谢·帕基特诺夫(Алексей Пажитнов 英文:Alexey Pazhitnov)。...没有被消除掉的方块不断堆积起来,一旦堆到屏幕顶端,玩家便告输,游戏结束。

    俄罗斯方块游戏

    C#编写的俄罗斯方块小游戏。由小方块组成的不同形状的板块陆续从屏幕上方落下来,玩家通过调整板块的位置和方向,使它们在屏幕底部拼出完整的一条或几条。这些完整的横条会随即消失,给新落下来的板块腾出空间,...

    很简单的C#写的俄罗斯方块游戏

    该俄罗斯方块游戏主要是用C#语言写的,窗体的设计中主要用到了panel, label, toolbar, timer, imagelist等控件。panel是画方块的控。label 是用来显示信息的,如分数、等级和已经消去的行数。imagelist是为toorbar...

Global site tag (gtag.js) - Google Analytics