• 大小: 625KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-06-17
  • 语言: C/C++
  • 标签: C++  贪吃蛇  C项目  

资源简介

经典贪吃蛇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个文件信息

评论

共有 条评论