资源简介
可供初学MFC的同学参考,有实例在手,弄通无忧
代码片段和文件信息
#include
#include
#include“snaker.h“
#include“table.h“
//游戏状态定义
#define GAME_STATE_WAIT 0 //游戏等待状态
#define GAME_STATE_RUN 1 //游戏运行状态
#define GAME_STATE_END 2 //游戏结束状态
//界面相关物件尺寸定义
#define WALL_WIDTH 80 //外墙从左部到游戏区的宽度
#define WALL_HEIGHT 80 //外墙从顶部到游戏区的高度
#define BMP_SCORE_BOARD_WIDTH 256 //分数位图板的宽度
#define BMP_SCORE_BOARD_HEIGHT 55 //分数位图板的高度
#define BMP_WALL_WIDTH 16 //墙位图的宽度
#define BMP_WALL_HEIGHT 16 //墙位图的高度
LRESULT CALLBACK WndProc(HWND hWndUINT message
WPARAM wParamLPARAM lParam);
void DrawGame(void);
void ShellDraw( HDC hdc );
void GameAreaDraw(HDC hdc);
void OnTimer(UINT uTIMER_ID);
void StartGame( void );
void EndGame( void );
//创建一个桌子
CTable table;
int tableBlockWidth = 0; //桌子的格子的宽度
int tableBlockHeight = 0; //桌子的格子的高度
int iScores = 0; //游戏的得分
UINT uGameState = GAME_STATE_WAIT; //当前游戏状态
HDC windowDC = NULL; //windows屏幕设备
HDC bufferDC = NULL; //缓冲设备环境
HDC picDC = NULL; //snake图像内存设备
HDC endDC = NULL; //游戏终结图像内存设备
HDC scoreDC = NULL; //分数板内存设备
HWND hAppWnd = NULL; //本application窗口句柄
HBITMAP picBMP = NULL; //snake图像位图句柄
HBITMAP bufferBMP = NULL; //缓冲位图句柄
HBITMAP endBMP = NULL; //游戏终结图像内存句柄
HBITMAP hbmpWall = NULL; //墙位图句柄
HBITMAP hbmpScore = NULL; //分数板位图句柄
HBRUSH hbrushWall = NULL; //墙画刷
//定时器标识
UINT uSnakeMoveTimer; //蛇的移动
UINT uFoodAddTimer; //水果的产生
//框架的位置数据定义
//GDI RECT 而不是 MFC CRect
RECT g_ClientRect;
RECT g_GameValueRect;
int g_iClientWidth;
int g_iClientHeight;
int WINAPI WinMain(HINSTANCE hCurrentInstHINSTANCE hPrevInstance
PSTR lpszCmdLineint nCmdShow)
{
WNDCLASS wndClass;
HWND hWnd;
MSG msg;
UINT widthheight;
//定义窗口
wndClass.style=CS_HREDRAW | CS_VREDRAW;
wndClass.lpfnWndProc=WndProc;
wndClass.cbClsExtra=0;
wndClass.cbWndExtra=0;
wndClass.hInstance=hCurrentInst;
wndClass.hIcon=LoadIcon(NULLMAKEINTRESOURCE(IDI_MAIN));
wndClass.hCursor=LoadCursor(NULLIDC_ARROW);
wndClass.hbrBackground=(HBRUSH)GetStockobject(WHITE_BRUSH);
wndClass.lpszMenuName=NULL;
wndClass.lpszClassName=“Snake_CLASS“;
//注册窗口
RegisterClass(&wndClass);
//取整个屏幕的尺寸
width=GetSystemMetrics(SM_CXSCREEN);
height= GetSystemMetrics(SM_CYSCREEN);
//创建窗口
hWnd=CreateWindow(
“Snake_CLASS“
“skyblue snake“
WS_POPUP
00
widthheight
NULLNULL
hCurrentInst
NULL);
hAppWnd = hWnd;
//显示窗口
ShowWindow(hWndnCmdShow);
UpdateWindow(hWnd);
//获取窗体大小
GetClientRect(hAppWnd &g_ClientRect);
g_iClientWidth = g_ClientRect.right-g_ClientRect.left;
g_iClientHeight = g_ClientRect.bottom-g_ClientRect.top;
//将游戏区域分成纵,横均为20块的小方块
//并计算每块区域的大小
tableBlockWidth = (g_iClientWidth-2*WALL_WIDTH)/20;
tableBlockHeight = (g_iClientHeight-2*WALL_HEIGHT)/20;
//获取当前主窗口设备与windowDC关联
windowDC=GetDC(NULL);
//创建与windowDC兼容的内存设备环境
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2010-01-18 11:36 skyblue_Snake\
文件 6518 2006-01-05 14:54 skyblue_Snake\bitmap1.bmp
文件 1334 2006-01-05 14:54 skyblue_Snake\brick.bmp
目录 0 2010-01-18 11:36 skyblue_Snake\Debug\
文件 7276 2009-12-24 14:36 skyblue_Snake\Debug\BuildLog.htm
文件 49020 2009-12-03 13:14 skyblue_Snake\Debug\main.obj
文件 69 2009-12-24 14:36 skyblue_Snake\Debug\mt.dep
文件 503808 2009-12-24 14:36 skyblue_Snake\Debug\Snake.exe
文件 146 2009-12-03 13:14 skyblue_Snake\Debug\Snake.exe.em
文件 212 2009-12-03 13:14 skyblue_Snake\Debug\Snake.exe.em
文件 145 2009-12-24 14:36 skyblue_Snake\Debug\Snake.exe.intermediate.manifest
文件 1108864 2009-12-24 14:36 skyblue_Snake\Debug\Snake.ilk
文件 19416 2009-12-24 14:36 skyblue_Snake\Debug\snake.obj
文件 1960960 2009-12-24 14:36 skyblue_Snake\Debug\Snake.pdb
文件 24584 2009-12-03 13:14 skyblue_Snake\Debug\snaker.res
文件 12660 2009-12-24 14:36 skyblue_Snake\Debug\table.obj
文件 347136 2009-12-24 14:36 skyblue_Snake\Debug\vc80.idb
文件 102400 2009-12-24 14:36 skyblue_Snake\Debug\vc80.pdb
文件 332454 2006-01-05 14:54 skyblue_Snake\end.bmp
文件 766 2006-01-05 14:54 skyblue_Snake\icon1.ico
文件 12251 2009-11-30 11:38 skyblue_Snake\main.cpp
文件 15818 2006-01-05 14:54 skyblue_Snake\scoreboard.bmp
文件 6518 2006-01-05 14:54 skyblue_Snake\snake.bmp
文件 7775 2009-12-15 14:46 skyblue_Snake\snake.cpp
文件 4466 2006-01-05 14:54 skyblue_Snake\Snake.dsp
文件 533 2006-01-05 14:54 skyblue_Snake\Snake.dsw
文件 1789 2009-12-24 14:36 skyblue_Snake\snake.h
文件 8192 2009-12-24 11:49 skyblue_Snake\snake.IAB
文件 408 2009-12-24 11:49 skyblue_Snake\snake.IAD
文件 4096 2009-12-24 11:48 skyblue_Snake\snake.IMB
文件 368 2009-12-24 11:48 skyblue_Snake\snake.IMD
............此处省略20个文件信息
- 上一篇:梁友栋-barsky算法
- 下一篇:SMTP邮件发送MFC、VC++耿网出品
相关资源
- C++课程设计贪吃蛇源码+课设报告
- MFC课程设计报告-手把手教你写贪吃蛇
- C++写的贪吃蛇(含源代码和注释,采
- 基于c++的贪吃蛇游戏设计
- c++贪吃蛇编程源代码论文设计c语言
- VC6.0贪吃蛇MFC
- C语言基于SDL的贪吃蛇项目
- 贪吃蛇(有完全源码和每一个功能的
- VC++版贪吃蛇游戏源代码
- vc++6.0 MFC 写的贪吃蛇工程源码
- MFC 贪吃蛇
- MFC编写的贪吃蛇源码
- visual c++的几个经典小游戏
- C++贪吃蛇设计+论文
- 用Visual C++6.0开发的贪吃蛇游戏含注释
- C语言贪吃蛇
- opengl/c++贪吃蛇.rar
- 贪吃蛇大作战demo实现和代码
- 加入射击功能和AI的贪吃蛇
- vs c++写的贪吃蛇
- C语言控制台版贪吃蛇游戏.rar
- C语言实现贪吃蛇大量注释+用到的库文
- C++编写贪吃蛇程序
- MFC贪吃蛇完美运行
- 贪吃蛇(使用easyX实现)
- 简易贪吃蛇 易扩展
- 贪吃蛇mfc版
- 分享vc++ 游戏开发经典案例详解王浩编
- c语言+贪吃蛇+实验报告+ppt
- 贪吃蛇C语言程序源代码原创
评论
共有 条评论