毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

贪吃蛇vc语言源代码+流程图+课程设计报告 第3页

更新时间:2010-7-8:  来源:毕业论文
贪吃蛇vc语言源代码+流程图+课程设计报告 第3页
其次来解释一下如何判断蛇的死亡,由于蛇的身体是由点坐标数组构成的,因此判断蛇是否死亡其本质就是判断蛇头的坐标是否与游戏边框相同或者蛇头坐标是否与蛇自己的身体相同。该过程也在OnTimer(UINT nIDEvent)函数中写入即可,设置一个判断死亡变量ysTag1,当按下向下键时,蛇纵坐标不断自加,此处仅以向下为例,具体程序如下:
switch(m_ysDirect)                     //根据键盘按下键来选择蛇移动的方向
{
case 1:                                //方向变量向下
本文来自优文论文网原文请找QQ752018766
  ysTag1=1;                      //变量为1,判断死亡
 }
 break;
}
如果ysTag1为1,则说明蛇已经死亡,应当弹出对话框提示死亡,输出得分(如图3-4),同时还可以根据玩家的得分数相应的改变对话框中的话语(XP系统下)。
 
图3-4 贪吃蛇的死亡
我们看到图3-4的蛇身体的颜色发生了变化,不再是初始状态的绿色,而是变为了蓝色,这是在OnDraw(CDC* pDC)函数中设置的,设置变量获取蛇身长度,随着长度的增加,蛇的颜色发生相应改变,最终会变为表示危险的红色。
并且伴随着贪吃蛇挂毕业论文http://www.youerw.com掉,播放不同的音乐,如果高于70分,则放带有掌声鼓励的高分音乐的IDR_YS_HIGHSCORE,反之,则播放蛇被撞死的电子音乐IDR_YS_LOWSCORE。
播放音乐的函数用包含在头文件mmsystem.h中的PlaySound函数。此外,游戏开始还需要计时、计分以及暂停等功能。这些功能都比较简单,游戏时间和分数分别用两个变量m_ysTime和m_ysScore来记录,应用pDC->TextOut函数来输出即可。至于暂停和继续的功能实现,只需要暂停和恢复计时器就可以了,实现暂停功能即KillTimer(1)并同时令控制暂停变量为m_yspausectrl为0即可。
3.2.4英雄榜
很多游戏都有英雄榜这一个功能。贪吃蛇这个游戏也不例外,为了下一次开始新游戏的玩家也能够看到别人的成绩,所以采用文件来存储游戏记录。
首先加入头文件fstream.h包含文件写入读出函数ifstream、ofstream。定义文件及变量存储成绩,将对话框中EditBox的变量设置成为对应类型。例如:
CYsBestRecord dlg;
dlg.m_ysbestscore1=m_1bestscore;
上面所写的就是变量的传递,传递完毕后,对话框控件中就有了初值,可以正常显示分数。而后进行游戏相应等级的玩家成绩判断,如果玩家成绩与英雄榜成绩相同,则根据时间来判断,若游戏时间短,则进入英雄榜。判断条件如下:
(m_ysScore>m_1bestscore||m_ysScore==m_1bestscore&&m_ysTime<m_1besttime)&&m_yslevelctrl==1
    本程序默认游戏结束即显示英雄榜,但玩家如果想在没有游戏时查看也可以点击菜单“帮助—〉英雄榜”查看。
3.2.5游戏设置
这里的游戏设置主要是指游戏的等级以及音效音乐的播放控制。前面在变量声明中已经看到,关于这三个量,我们已经予以了定义,只需要在按下相应键盘或鼠标消息的时候,将变量值进行改变,再利用这些值控制相应功能的运行。以游戏音效为例,在按下菜单中的“游戏设置—〉音乐—〉音效开/关” 后(即菜单消息void CYuShuoView::OnYsEffect()),代码如下:
switch(m_yseffectctrl)    //根据音效控制变量选择
{
case 1:             //音效选择开
 m_yseffectctrl=0;     //将音效控制变量改为0
 break;
case 0:                   //音效选择关
 m_yseffectctrl=1;     //将音效控制变量改为1 
 break;
}
其中在构造函数CYuShuoView::CYuShuoView()中已经将m_yseffectctrl的初值设置为1。
第四章 结果与讨论
本文来自优文论文网原文请找QQ752018766
程序开始运行后会进入游戏界面,但是不会立即进行游戏,单击菜单的“开始”才会开始游戏。在游戏开始前,玩家可以根据自己的喜好,通过菜单或者工具栏设置游戏等级等。
在游戏过程中,按下Space键就会暂停游戏,再按下Space键则会继续游戏。图4-1所显示的是XP系统下菜单的样式,以及单击菜单开始。
 (1)带有子菜单的菜单样式
(2)单击开始菜单
图4-1 菜单样式及单击开始游戏
开始游戏了,小蛇越来越长,颜色也有所不同了。颜色的改变预示着游戏的难度加大了,并且,不同的最终得分会产生不同的死亡评语。
在前面的图3-4中显示了贪吃蛇死亡的样子,其中因为该局游戏得分比较低,因此得到的评语是“你才得了这么两分!”,而如果得毕业论文http://www.youerw.com分较高,就会得到更好的评语,最好的评语是“牛!”。
图4-2所显示的是游戏开始后随着蛇长度的增加而变的颜色。            
(1)黄色                                   (2)红色
图4-2 蛇变颜色
如果不太会玩贪吃蛇这款游戏,那么可以单击菜单“帮助—〉游戏说明”,或者单击工具条上的 ,寻求帮助。如图4-2所示。
图4-3 游戏说明
如果你觉得自己实力很强想看看别人的成绩,那么可以单击英雄榜看看什么样。
图4-4 英雄榜样式
4.2错误调试与分析
本程序由于经常调用Invalidate()函数重绘窗口,因此在游戏过程中频闪的非常严重。查阅了很多资料,双缓冲技术可以解决这个问题,但是如果采用双缓冲技术,暂时还不能克服背景的问题,因为在双缓冲技术的应用中,背景是被强制默认为颜色,而不是图片。
我尝试改变了一下,但是没有成功,所以这个问题还没有解决。希望大家多多给予意见。

上一页  [1] [2] [3] 

贪吃蛇vc语言源代码+流程图+课程设计报告 第3页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。