资源描述:
《vc++程序--贪吃蛇部分源代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、sourcecode:#include//main.cpp#include#include"snaker.h"#include"table.h"//游戏状态定义#defineGAME_STATE_WAIT0//游戏等待状态#defineGAME_STATE_RUN1//游戏运行状态#defineGAME_STATE_END2//游戏结束状态//界面相关物件尺寸定义#defineWALL_WIDTH80//外墙从左部到游戏区的宽度#defineWALL_HEIGHT80//外墙从顶部
2、到游戏区的高度#defineBMP_SCORE_BOARD_WIDTH256//分数位图板的宽度#defineBMP_SCORE_BOARD_HEIGHT55//分数位图板的高度#defineBMP_WALL_WIDTH16//墙位图的宽度#defineBMP_WALL_HEIGHT16//墙位图的高度LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam);voidDrawGame(void);voidShellDraw(HDChdc
3、);voidGameAreaDraw(HDChdc);voidOnTimer(UINTuTIMER_ID);voidStartGame(void);voidEndGame(void);//创建一个桌子CTabletable;inttableBlockWidth=0;//桌子的格子的宽度inttableBlockHeight=0;//桌子的格子的高度intiScores=0;//游戏的得分UINTuGameState=GAME_STATE_WAIT;//当前游戏状态HDCwindowDC=NULL;//windows屏幕
4、设备HDCbufferDC=NULL;//缓冲设备环境HDCpicDC=NULL;//snake图像内存设备HDCendDC=NULL;//游戏终结图像内存设备HDCscoreDC=NULL;//分数板内存设备HWNDhAppWnd=NULL;//本application窗口句柄HBITMAPpicBMP=NULL;//snake图像位图句柄HBITMAPbufferBMP=NULL;//缓冲位图句柄HBITMAPendBMP=NULL;//游戏终结图像内存句柄HBITMAPhbmpWall=NULL;//墙位图句柄H
5、BITMAPhbmpScore=NULL;//分数板位图句柄HBRUSHhbrushWall=NULL;//墙画刷//定时器标识UINTuSnakeMoveTimer;//蛇的移动UINTuFoodAddTimer;//水果的产生//框架的位置数据定义//GDIRECT而不是MFCCRectRECTg_ClientRect;RECTg_GameValueRect;intg_iClientWidth;intg_iClientHeight;intWINAPIWinMain(HINSTANCEhCurrentInst,HIN
6、STANCEhPrevInstance,PSTRlpszCmdLine,intnCmdShow){WNDCLASSwndClass;HWNDhWnd;MSGmsg;UINTwidth,height;//定义窗口wndClass.style=CS_HREDRAW
7、CS_VREDRAW;wndClass.lpfnWndProc=WndProc;wndClass.cbClsExtra=0;wndClass.cbWndExtra=0;wndClass.hInstance=hCurrentInst;wndClass.hIcon=
8、LoadIcon(NULL,MAKEINTRESOURCE(IDI_MAIN));wndClass.hCursor=LoadCursor(NULL,IDC_ARROW);wndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);wndClass.lpszMenuName=NULL;wndClass.lpszClassName="Snake_CLASS";//注册窗口RegisterClass(&wndClass);//取整个屏幕的尺寸width=GetSyst
9、emMetrics(SM_CXSCREEN);height=GetSystemMetrics(SM_CYSCREEN);//创建窗口hWnd=CreateWindow("Snake_CLASS","skybluesnake",WS_POPUP,0,0,width,height,NULL,NULL,hCurrentInst,NULL