`
桔红糕
  • 浏览: 42505 次
  • 性别: 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编程语言来开发经典的俄罗斯方块游戏,并在此基础上增加游戏结束的判断与处理机制。这是一份结课设计,旨在检验并提升学员在实际项目开发中...

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

    在本课程“传智播客_俄罗斯方块游戏12_增加游戏结束”中,我们将深入探讨面向对象编程(OOP)的关键概念,这是学习JavaEE、JavaME等高级技术的基石。通过实际的代码实例讲解,这个教程旨在帮助初学者扎实地掌握Java...

    Excel 俄罗斯方块小游戏源代码,基于Excel VBA 宏制作的 俄罗斯方块小游戏源码

    Excel中的俄罗斯方块小游戏是利用VBA(Visual Basic for Applications)宏编程实现的,这是一种内置于Microsoft Office套件中的编程语言,允许用户自定义工作表的功能和交互性。本源代码提供了一个完整的实现,让...

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

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

    俄罗斯方块游戏源代码

    《俄罗斯方块游戏源代码详解》 俄罗斯方块,这款起源于苏联的经典电子游戏,以其简单易上手、趣味无穷的特点,历经数十年仍然深受玩家喜爱。本篇将深入探讨其游戏机制、实现原理以及VC++环境下的源码分析。 一、...

    俄罗斯方块游戏_俄罗斯方块_

    【俄罗斯方块游戏】是一种经典的电子游戏,由苏联软件工程师阿列克谢·帕基特诺夫于1984年发明。这个游戏以其简洁的设计、易于理解和高度上瘾性著称,吸引了全球无数玩家的喜爱。在本文中,我们将探讨如何使用keil...

    俄罗斯方块(C语言版) 俄罗斯方块

    在这个项目中,开发者利用C语言的基本结构,如循环、条件语句、函数以及内存管理等,构建了一个完整的俄罗斯方块游戏系统。 1. **C语言基础** C语言是计算机科学中的基础编程语言,以其高效、灵活和接近底层硬件的...

    Delphi编写的俄罗斯方块游戏源码

    俄罗斯方块游戏有多个状态,如游戏开始、暂停、游戏结束等。源码中应有状态机设计,通过变量或枚举类型来管理游戏状态,并根据状态执行不同的操作。 7. **分数系统** 游戏的得分与消除的行数有关。源码中会有计算...

    使用Dev c++实现小游戏俄罗斯方块 C++版

    当游戏区域顶部填满无法放下新的方块时,游戏结束,显示最终得分。 在Dev C++环境中,我们可以利用其集成的编译器和调试工具进行开发和测试。通过编译和运行代码,我们可以实时看到游戏的效果,方便地找出并修复...

    Cocos 俄罗斯方块 游戏 源码

    【Cocos 俄罗斯方块游戏源码解析】 Cocos 是一款强大的游戏开发框架,它提供了丰富的功能和便捷的工具,让开发者能够轻松地创建2D和3D游戏。本源码是基于Cocos Creator构建的俄罗斯方块游戏,Cocos Creator是Cocos...

    JQuery 游戏 俄罗斯方块 代码

    【jQuery 游戏 俄罗斯方块 代码】是一款基于JavaScript库jQuery实现的网页版俄罗斯方块游戏。这个游戏的特色在于其简洁高效的代码实现,通过利用jQuery的事件处理和DOM操作功能,使得开发者可以用相对较少的代码量...

    基于linux开发的俄罗斯方块小游戏.rar

    此外,游戏的得分计算、游戏结束条件判断、游戏状态的保存与加载等都是开发中不可忽视的部分。这部分可能涉及到文件操作,如使用stdio库进行文件读写,保存游戏进度。 最后,论文答辩PPT和相关的论文资料,可能涵盖...

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

    《C#实现的简单俄罗斯方块游戏详解》 在编程世界中,开发一款经典的小游戏是许多初学者和爱好者热衷的项目。本篇将详细解析一个使用C#语言编写的简单俄罗斯方块游戏,带你深入理解游戏的核心机制以及C#编程在游戏...

    基于MFC的俄罗斯方块游戏

    **基于MFC的俄罗斯方块游戏** MFC(Microsoft Foundation Classes)是微软提供的一套C++库,用于构建Windows应用程序。它封装了Windows API,使得开发者可以使用面向对象的方式来开发Windows程序,包括桌面应用、...

    用java写的一个俄罗斯方块的游戏

    【Java编程实现俄罗斯方块游戏】 在编程领域,创建一个经典游戏如俄罗斯方块是一种常见的学习实践,可以加深对编程语言特性和面向对象设计的理解。在这个案例中,我们看到一个用Java实现的俄罗斯方块游戏。Java作为...

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

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

    C语言俄罗斯方块游戏源代码

    根据提供的文件信息,本文将详细解析“C语言俄罗斯方块游戏源代码”的相关知识点,包括游戏的基本概念、C语言在游戏开发中的应用以及如何利用C语言实现一个简易版的俄罗斯方块游戏。 ### 一、俄罗斯方块游戏概述 ...

    一个n年前用vb写的俄罗斯方块游戏源代码

    【标题】中的“一个n年前用vb写的俄罗斯方块游戏源代码”表明这是一个基于Visual Basic(VB)编程语言开发的俄罗斯方块游戏的源代码。VB是微软公司开发的一种面向对象的编程语言,尤其在20世纪90年代至21世纪初非常...

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

    在本文中,我们将深入探讨如何使用Qt开发框架来实现一个具有重新开始、暂停和结束等功能的俄罗斯方块游戏。Qt是一个跨平台的应用程序开发框架,它支持多种编程语言,包括C++,并且提供了丰富的图形用户界面(GUI)...

    俄罗斯方块游戏代码解析

    《VC++实现的俄罗斯方块游戏代码解析》 在编程世界中,俄罗斯方块是一款经典的电子游戏,它的简单规则和无限挑战性使得它成为初学者学习游戏编程的绝佳选择。本资源提供了一款使用VC++编写的俄罗斯方块游戏源代码,...

Global site tag (gtag.js) - Google Analytics