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