nIDEvent函数中写入即可,设置一个判断死亡变量ysTag1,当按下向下键时,蛇纵坐标不断自加,此处仅以向下为例,具体程序如下: switchm_ysDirect //根据键盘按下键来选择蛇移动的方向 case 1: //方向变量向下 原文请找 ysTag11 //变量为1,判断死亡 break 如果ysTag1为1,则说明蛇已经死亡,应当弹出对话框提示死亡,输出得分(如图3-4),同时还可以根据玩家的得分数相应的改变对话框中的话语(XP系统下)。
图3-4 贪吃蛇的死亡 我们看到图3-4的蛇身体的颜色发生了变化,不再是初始状态的绿色,而是变为了蓝色,这是在OnDrawCDC pDC函数中设置的,设置变量获取蛇身长度,随着长度的增加,蛇的颜色发生相应改变,最终会变为表示危险的红色。
并且伴随着贪吃蛇挂掉,播放不同的音乐,如果高于70分,则放带有掌声鼓励的高分音乐的IDR_YS_HIGHSCORE,反之,则播放蛇被撞死的电子音乐IDR_YS_LOWSCORE。
播放音乐的函数用包含在头文件mmsystem.h中的PlaySound函数。
此外,游戏开始还需要计时、计分以及暂停等功能。
这些功能都比较简单,游戏时间和分数分别用两个变量m_ysTime和m_ysScore来记录,应用pDC-TextOut函数来输出即可。
至于暂停和继续的功能实现,只需要暂停和恢复计时器就可以了,实现暂停功能即KillTimer1并同时令控制暂停变量为m_yspausectrl为0即可。
3.2.4英雄榜 很多游戏都有英雄榜这一个功能。
贪吃蛇这个游戏也不例外,为了下一次开始新游戏的玩家也能够看到别人的成绩,所以采用文件来存储游戏记录。
首先加入头文件fstream.h包含文件写入读出函数ifstream、ofstream。
定义文件及变量存储成绩,将对话框中EditBox的变量设置成为对应类型。
例如: CYsBestRecord dlg dlg.m_ysbestscore1m_1bestscore 上面所写的就是变量的传递,传递完毕后,对话框控件中就有了初值,可以正常显示分数。
而后进行游戏相应等级的玩家成绩判断,如果玩家成绩与英雄榜成绩相同,则根据时间来判断,若游戏时间短,则进入英雄榜。
判断条件如下: m_ysScorem_1bestscorem_ysScorem_1bestscorem_ysTime
上一篇:
VC++串口上位机简单例程(源码及详细步骤) doc
下一篇:
汝康皮肤护理液医治烧伤的可行性和效果分析