欢迎来到天天文库
浏览记录
ID:34420351
大小:63.50 KB
页数:12页
时间:2019-03-06
《“贪吃蛇”游戏程序代码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、“贪吃蛇”游戏程序代码我个人是比较喜欢玩游戏的,所以学习编程二年多了,很想做个游戏程序,由于能力有限,一直没能做好,后来突然看同学在手机上玩“贪吃蛇”,故想做出来,其一是因为此游戏界面容易设计,算法也比较简单,今天我就把我程序的代码和算法介绍一下,顺便把程序界面皮肤设计说一下...... 程序中一个关于游戏信息的类如下,由于类的说明在程序中写的很清楚了,就不再多解释了:#include"time.h" //方向定义 constCPointUP(CPoint(0,-1)); constCPointDOWN(CPoint(0,1)); constCPointLEFT(
2、CPoint(-1,0)); constCPointRIGHT(CPoint(1,0)); //速度快慢定义 constintHIGH=75; constintNORMAL=180; constintSLOW=300; constintMAX=80;//表示转向数 constintLENGTH=10; classGameMsg { public: GameMsg(void) :m_icon(0) { InitGame(); } voidInitGame(intup=VK_UP,intdown=VK_DOWN,intlef
3、t=VK_LEFT,intright=VK_RIGHT) { srand((unsigned)time(NULL)); m_gameSpeed=NORMAL; m_speedNum=2; m_snakeNum=4; for(inti=0;i4、turnRIGHT=right; } public: intm_gameSpeed;//游戏速度 intm_speedNum;//游戏速度数 CPointm_foodPoint;//食物定义 boolm_run;//游戏状态,运得态还是暂停(结束)态 CPointm_snakePoint[MAX];//蛇身定义 CPointm_direction;//蛇运动方向 intm_snakeNum;//蛇身结点数 intm_icon;//用来设定食物是那种图标的 intturnUP;//用来表示玩家“上”键设的键intturnDOWN;//用来表示5、玩家“下”键设的键intturnLEFT;//用来表示玩家“左”键设的键intturnRIGHT;//用来表示玩家“右”键设的键 intm_num;//用来记录所选水果的编号 }; 再让读者看一下程序主干类的设计,其中以下只列出由我们自己添加的一些变量的说明,其他的是由程序向导自动生成的,我就不说了: public: afx_msgvoidOnTimer(UINT_PTRnIDEvent);//程序中运行函数,即是一个定时器,时间就是上面类中的m_gameSpeed来控制的CStatic*m_staticArray;//这是一个蛇定义,是用来显示蛇的,上面只告诉蛇6、身结点的中心点位置坐标,然后在此中心画一个控件就类似于蛇身了afx_msgvoidOnClose();//结束,主要是在其中销毁定时器的 voidGameOver(void);//游戏结束函数 afx_msgvoidOnRButtonDown(UINTnFlags,CPointpoint);//当点击鼠标右键出现菜单afx_msgvoidOnNewGame();//菜单选项,新游戏afx_msgvoidOnPauseOrStart();//菜单选项,暂停/开始游戏afx_msgvoidOnUpdateQuick(CCmdUI*pCmdUI);//这3个函数本来是来标记速度的,7、和上面类中的m_speedNum对应,但是没有标记成功 afx_msgvoidOnUpdateNormal(CCmdUI*pCmdUI); afx_msgvoidOnUpdateSlow(CCmdUI*pCmdUI); afx_msgvoidOnNormal();//菜单选项,设定为普通速度afx_msgvoidOnSlow();//菜单选项,设定为慢速度afx_msgvoidOnQuick();//菜单选项,设定为快速度afx_msgvoid
4、turnRIGHT=right; } public: intm_gameSpeed;//游戏速度 intm_speedNum;//游戏速度数 CPointm_foodPoint;//食物定义 boolm_run;//游戏状态,运得态还是暂停(结束)态 CPointm_snakePoint[MAX];//蛇身定义 CPointm_direction;//蛇运动方向 intm_snakeNum;//蛇身结点数 intm_icon;//用来设定食物是那种图标的 intturnUP;//用来表示玩家“上”键设的键intturnDOWN;//用来表示
5、玩家“下”键设的键intturnLEFT;//用来表示玩家“左”键设的键intturnRIGHT;//用来表示玩家“右”键设的键 intm_num;//用来记录所选水果的编号 }; 再让读者看一下程序主干类的设计,其中以下只列出由我们自己添加的一些变量的说明,其他的是由程序向导自动生成的,我就不说了: public: afx_msgvoidOnTimer(UINT_PTRnIDEvent);//程序中运行函数,即是一个定时器,时间就是上面类中的m_gameSpeed来控制的CStatic*m_staticArray;//这是一个蛇定义,是用来显示蛇的,上面只告诉蛇
6、身结点的中心点位置坐标,然后在此中心画一个控件就类似于蛇身了afx_msgvoidOnClose();//结束,主要是在其中销毁定时器的 voidGameOver(void);//游戏结束函数 afx_msgvoidOnRButtonDown(UINTnFlags,CPointpoint);//当点击鼠标右键出现菜单afx_msgvoidOnNewGame();//菜单选项,新游戏afx_msgvoidOnPauseOrStart();//菜单选项,暂停/开始游戏afx_msgvoidOnUpdateQuick(CCmdUI*pCmdUI);//这3个函数本来是来标记速度的,
7、和上面类中的m_speedNum对应,但是没有标记成功 afx_msgvoidOnUpdateNormal(CCmdUI*pCmdUI); afx_msgvoidOnUpdateSlow(CCmdUI*pCmdUI); afx_msgvoidOnNormal();//菜单选项,设定为普通速度afx_msgvoidOnSlow();//菜单选项,设定为慢速度afx_msgvoidOnQuick();//菜单选项,设定为快速度afx_msgvoid
此文档下载收益归作者所有