資源簡介
經典貪吃蛇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個文件信息
評論
共有 條評論