最后,我们来处理一下游戏结束。
先在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_增加游戏结束,充分了解java编程
(6)方块下端接触到游戏框下边框或方块时方块停止移动,方块上端接触到游戏框的上边框时结束游戏。 (7)游戏可以同时通过键盘和鼠标来操作。 (8)游戏可以通过按“S”键开始游戏,“P”键暂停和继续游戏,“R”...
【关于俄罗斯方块游戏】 游戏简介 俄罗斯方块是一款益智方块类游戏, 这款游戏最初是由苏联的电脑科学家帕吉特诺夫(Alex Pajitnov)于1985年制作的, 作者给了他一个源自希腊字4(tetra)的名字Tetris。 1989年由...
通过java编写的俄罗斯方块小游戏,完成俄罗斯方块基本功能及扩展功能,适合初学者练手学习。 基本功能: 方块消行 方块控制 随机生成方块 预览下一方块 游戏状态判断 游戏暂停、结束提醒 退出...
本篇介绍用C#编写一个俄罗斯方块程序的原理,以及在C#里面播放声音,保存游戏设置的方法。 游戏界面预览: 菜单预览: 自定义每个小方块颜色功能界面: 游戏主要有四部分组成:Square类,Block类,game...
特别精细的俄罗斯方块小游戏设计 熟悉游戏规则很重要,因为这是程序设计的基本要求,也是基本思路。 游戏规则如下: 电脑随机产生4个小方块组成的不同形状的游戏块,从上往下降落。 游戏面板的宽度为12(以...
用java语言开发的基于Android平台的俄罗斯方块手机游戏---毕业设计,开发工具Eclipse
传智播客版《俄罗斯方块游戏开发》视频教程包括14小节: 01_游戏功能演示与说明...消除满行的障碍物 12_增加游戏结束的功能 13_解决定时下落与按下键同时生成障碍物的问题 14_俄罗斯方块游戏开发练习题
java Swing制作的俄罗斯方块小游戏,主题切换、背景音乐等完成众多功能。 基本功能: 方块消行 方块控制 随机生成方块 预览下一方块 游戏状态判断 游戏暂停、结束提醒 退出程序提醒 等级...
qt实现俄罗斯方块,功能有重新开始,暂停,结束等
该俄罗斯方块是有Python编写而成的。它具有对游戏的正常操作,可以控制方块下落位置、下落时改变方向,以及对方块的直接下落。该游戏分左右两个界面,左边显示游戏的运行状态,右边显示游戏下一个即将出现的方块,...
面向对象的基础核心知识点之一,是日后学习JavaEE,JavaME的必备知识;注重基础的代码实例讲解, 让你轻松的学习Java基础知识,为以后学习铺平道路,打好基础;万丈高楼平地起,希望能帮助你!
初始化,取随机方块,取方块颜色,画方块,清除方块,是否可移动,恢复,下降,画下一个方块,左移,右移,旋转,游戏结束,是否填满一行,删除一行,消除动画,清除所有方块动画
俄罗斯方块游戏是一款经典的益智游戏,有PC和手机等多平台版本,既简单又耐玩。通过设计一款贪吃蛇游戏来巩固自己对Python语言的学习,并激发自己对学习编程的兴趣。 1.2 功能要求 1.设计游戏规则、游戏开始等按钮 ...
传智播客_俄罗斯方块游戏12_增加游戏结束.rar 传智播客_俄罗斯方块游戏12_增加游戏结束.rar 传智播客_俄罗斯方块游戏12_增加游戏结束.rar
俄罗斯方块游戏源码大公开 C#代码编写,支持点NET框架,游戏有易,中,难三个等级控制速度,界面精美,代码写法严谨,是大家不可多得的学习C#编程的好资源。
可以直接在debug下选择使用exe...游戏没有写结束过程,只有中间环节以及积分过程。操作为上下左右,下可以加速,速度不快每500毫秒下降一个单位,别修改单个方格的像素大小,后面我的单独处理的,免得越界无法判断。
俄罗斯方块是俄罗斯人发明的。这人叫阿列克谢·帕基特诺夫(Алексей Пажитнов 英文:Alexey Pazhitnov)。...没有被消除掉的方块不断堆积起来,一旦堆到屏幕顶端,玩家便告输,游戏结束。
C#编写的俄罗斯方块小游戏。由小方块组成的不同形状的板块陆续从屏幕上方落下来,玩家通过调整板块的位置和方向,使它们在屏幕底部拼出完整的一条或几条。这些完整的横条会随即消失,给新落下来的板块腾出空间,...
该俄罗斯方块游戏主要是用C#语言写的,窗体的设计中主要用到了panel, label, toolbar, timer, imagelist等控件。panel是画方块的控。label 是用来显示信息的,如分数、等级和已经消去的行数。imagelist是为toorbar...