资源简介
经典贪吃蛇C++项目,亲测可运行,非常不错的源代码,可以用来研究学习一下
代码片段和文件信息
#include “DealBeginMenuMsg.h“
//////////////////////////////////////////////////////////////////////////
LRESULT DealBeginMenuMsg( HWND hwnd UINT message WPARAM wParam LPARAM lParam )
{
static HINSTANCE hInst;
static int menuID = 0;
static int oldMenuID = 0;
HDC hdc;
PAINTSTRUCT ps;
switch( message )
{
case WM_CREATE:
hInst =(HINSTANCE) GetWindowLong( hwnd GWL_HINSTANCE );
PostMessage( hwnd CM_GAME_READY 0 0 );
return 0;
case WM_PAINT:
hdc = BeginPaint( hwnd &ps );
InitBeginUI( hdc hInst );
EndPaint( hwnd &ps );
return 0;
case CM_GAME_READY:
SetTimer( hwnd TMR_BEGIN 60 NULL );
PlaySound( MAKEINTRESOURCE( IDR_GAME_START ) (HINSTANCE)GetWindowLong( hwnd GWL_HINSTANCE ) SND_RESOURCE | SND_ASYNC | SND_LOOP );
return 0;
case CM_START_GAME:
InvalidateRect( hwnd NULL TRUE );
SetWindowLong( hwnd GWL_WNDPROC (long)PlayingProc );
SetTimer( hwnd TMR_PLAYING_READY 500 NULL ); //开启游戏准备音效定时器
PlaySound( NULL NULL SND_FILENAME ); //终止当前音效
return CM_START_GAME;
case WM_KEYDOWN:
switch( wParam )
{
case VK_RETURN:
//预留处理
break;
}
return 0;
case WM_TIMER:
switch( wParam )
{
case TMR_BEGIN:
menuID = DealMouseMove( hwnd );
if( menuID != oldMenuID && menuID > 0 )
{
DrawSelectedBox( hwnd 240 + (menuID-1) * 50 );
oldMenuID = menuID;
}
break;
}
return 0;
case WM_LBUTTONDOWN:
//PlaySound( MAKEINTRESOURCE( IDR_EATING ) hInst SND_RESOURCE | SND_ASYNC );
DealMenuClick( DealMouseMove(hwnd) hwnd hInst );
return 0;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc( hwnd message wParam lParam );
}
//////////////////////////////////////////////////////////////////////////
//处理鼠标消息
int DealMouseMove( HWND hwnd )
{
POINT pt;
GetCursorPos(&pt) ;
ScreenToClient( hwnd &pt ) ;
if( pt.x < 340 ) return 0;
if( pt.x > 450 ) return 0;
if( pt.y < 245 ) return 0;
if( pt.y > 435 ) return 0;
if( pt.y > 250 && pt.y < 285 )
return 1;
if( pt.y > 300 && pt.y < 335 )
return 2;
if( pt.y > 350 && pt.y < 385 )
return 3;
if( pt.y > 400 && pt.y < 435 )
return 4;
return 0;
}
//////////////////////////////////////////////////////////////////////////
//绘制菜单选中外框
void drawGreenBox( HWND hwnd int yPos );
void drawBlackBox( HWND hwnd int yPos );
void DrawSelectedBox( HWND hwnd int yPos )
{
int i = 0;
for( i; i < 4; i++ )
{
drawBlackBox( hwnd 240 + i * 50 );
}
drawGreenBox( hwnd yPos );
}
//////////////////////////////////////////////////////////////////////////
//绘制一个绿色的边框
void drawGreenBox( HWND hwnd int yPos )
{
HDC hdc;
HPEN hPen;
POINT apn[5] = { {335 yPos} {460 yPos} {460 yPos+45} {335 yPos+45} {335 yPos} } ; //坐标组
hdc = GetDC( hwnd );
hPen = CreatePen( PS_SOLID 3 RGB(0 128 0) );
Selectobject( hdc hPen );
Polyline( hdc ap
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-10-04 20:27 Snake_project\
文件 307200 2013-04-08 22:34 Snake_project\Snake.exe
文件 126 2013-04-08 22:20 Snake_project\游戏控制说明.txt
目录 0 2013-04-08 23:39 Snake_project\项目源码\
文件 3949 2013-04-08 20:11 Snake_project\项目源码\DealBeginMenuMsg.c
文件 636 2013-04-08 20:11 Snake_project\项目源码\DealBeginMenuMsg.h
文件 1061 2013-04-08 19:24 Snake_project\项目源码\GameOverDlgProc.c
文件 281 2013-04-08 18:39 Snake_project\项目源码\GameOverDlgProc.h
文件 547 2013-04-08 20:39 Snake_project\项目源码\GameWndProc.c
文件 361 2013-04-08 18:40 Snake_project\项目源码\GameWndProc.h
文件 411 2013-04-08 18:54 Snake_project\项目源码\HelpDialogProc.c
文件 277 2013-04-04 00:24 Snake_project\项目源码\HelpDialogProc.h
文件 1782 2013-04-04 15:46 Snake_project\项目源码\Init_Begin_UI.c
文件 377 2013-04-03 22:28 Snake_project\项目源码\Init_Begin_UI.h
文件 2953 2013-04-08 23:33 Snake_project\项目源码\Init_Playing_Map.c
文件 612 2013-04-07 15:23 Snake_project\项目源码\Init_Playing_Map.h
文件 1473 2013-04-08 20:04 Snake_project\项目源码\MacroDefine.h
文件 11122 2013-04-08 22:34 Snake_project\项目源码\PlayingProc.c
文件 1037 2013-04-08 21:04 Snake_project\项目源码\PlayingProc.h
目录 0 2013-04-08 23:41 Snake_project\项目源码\Release\
文件 307200 2013-04-08 23:37 Snake_project\项目源码\Release\Snake.exe
文件 1705 2013-04-07 18:53 Snake_project\项目源码\Snake.c
文件 5681 2013-04-08 19:02 Snake_project\项目源码\Snake.dsp
文件 516 2013-04-03 14:30 Snake_project\项目源码\Snake.dsw
文件 58368 2013-04-08 23:39 Snake_project\项目源码\Snake.ncb
文件 53760 2013-04-08 23:39 Snake_project\项目源码\Snake.opt
文件 2074 2013-04-08 23:39 Snake_project\项目源码\Snake.plg
文件 449 2013-04-04 17:02 Snake_project\项目源码\cu_map.h
文件 4846 2013-04-04 02:58 Snake_project\项目源码\icon_game.ico
文件 2441 2013-04-04 23:40 Snake_project\项目源码\map_data.h
文件 1002 2013-04-08 18:19 Snake_project\项目源码\resource.h
............此处省略8个文件信息
相关资源
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
- c++多边形交并差运算
- VC++基于OpenGL模拟的一个3维空间模型
- c++ 虚拟摄像头
- hook,捕获所有案件,查找所有窗口,
- C语言课设计算器
- c++ 简易贪吃蛇源码
- 高精度加法(c++代码)
- C++调用百度地图案例
- 北京化工大学计算方法(C/C++)讲义
- 基于VC++的SolidWorks二次开发SolidWorks
- c++ 模拟鼠标按键
- OFD编辑器
- Beginning C++17 From Novice to Professional
- C++ STL实现
- opencv手部轮廓识别以及轨迹识别
- 百度C++编码规范
- C++ sql2008 WebServer通讯.docx
- c++ 定时关机程序源码
- 基于VSCode和CMake实现C++开发
- c++语法查询工具
- c++ 账务系统源码
- GBT 28169-2011 嵌入式软件 C语言编码规范
- c++ 猜拳小游戏
- XUnZip Zip解压缩.rar
评论
共有 条评论