資源簡介
坦克大戰游戲的源代碼,用C++寫的,有興趣的朋友可以下載下來看一下,作為學習之用還是不錯的。

代碼片段和文件信息
//?Game.cpp:?implementation?of?the?CGame?class.
//
//////////////////////////////////////////////////////////////////////
#include?
#include?“Game.h“
#include?“resource.h“
#define?SCREEN_W 640
#define?SCREEN_H 480
#define?OFFSETX 100
#define?OFFSETY 48
#define?Player1_STARTX 130
#define?Player1_STARTY 386
#define?Player2_STARTX 258
#define?Player2_STARTY 386
#define?SAFE_RELEASE(x) if(x){?x->Release();?x?=?NULL;?}
CGame* g_pGame;
inline?int?random(?int?min?int?max?)
{
return?(min?+?rand()?%?(max?-?min?+?1));
}
void?TRACE(?LPCTSTR?format?...?)
{
????char????buf[128];
????va_list?vl;
????va_start(vl?format);
????sprintf(buf?format?vl);
????OutputDebugString(?buf?);
va_end(vl);
}
void?CGame::OutputText(?int?x?int?y?LPCTSTR?string?)
{
HDC?hdc;
if(?m_pddsBackBuffer?&&?
m_pddsBackBuffer->GetDC(&hdc)?==?DD_OK?)
{
SetBkMode(?hdc?TRANSPARENT?);
SetTextColor(?hdc?RGB(2552550)?);
TextOut(?hdc?x?y?string?lstrlen(string)?);
m_pddsBackBuffer->ReleaseDC(?hdc?);
}
}
//////////////////////////////////////////////////////////////////////
//?Construction/Destruction
//////////////////////////////////////////////////////////////////////
CGame::CGame()
{
m_hInst?=?NULL;
m_hWnd?=?NULL;
m_bActive?=?FALSE;
m_bShowStats?=?FALSE;
m_bFullScreen?=?TRUE;
m_bSingle?=?TRUE;
m_pDD?=?NULL;
m_pddsFrontBuffer?=?NULL;
m_pddsBackBuffer?=?NULL;
g_pGame?=?this;
}
CGame::~CGame()
{
}
LRESULT?CALLBACK?WndProc(?HWND?hWnd?UINT?uMsg?WPARAM?wParam?LPARAM?lParam?)
{
if(?g_pGame?)
return?g_pGame->MsgProc(?hWnd?uMsg?wParam?lParam?);
return?DefWindowProc(?hWnd?uMsg?wParam?lParam?);
}
LRESULT?CGame::MsgProc(?HWND?hWnd?UINT?uMsg?WPARAM?wParam?LPARAM?lParam?)
{
switch(?uMsg?)
{
case?WM_ACTIVATEAPP:
if(?m_bActive?=?(BOOL)wParam?)
m_DirectInput.Acquire();
return?0;
case?WM_SETCURSOR:
if(?m_bFullScreen?)
{
SetCursor(?NULL?);
return?TRUE;
}
break;
case?WM_CLOSE:
PostQuitMessage(0);
return?0;
case?WM_MOVE:
m_bActive?=?TRUE;
GetClientRect(?hWnd?&m_rcWindow?);
ClientToScreen(?hWnd?(LPPOINT)&m_rcWindow?);
ClientToScreen(?hWnd?(LPPOINT)&m_rcWindow?+?1?);
return?0;
case?WM_MOVING:
m_bActive?=?FALSE;
break;
case?WM_KEYDOWN:
switch(?wParam?)
{
case?VK_ESCAPE:
if(?m_gameState?==?GS_ACTIVE?)
m_gameState?=?GS_SPLASH;
else?if(?m_gameState?==?GS_SPLASH?)
PostQuitMessage(0);
else?if(?m_gameState?==?GS_OVER?)
m_gameState?=?GS_SPLASH;
break;
case?VK_F4:
DDTerm();
m_bFullScreen?=?!m_bFullScreen;
DDInit();
return?0;
case?VK_F5:
m_bShowStats?=?!m_bShowStats;
return?0;
case?VK_DOWN:
case?VK_UP:
if(?m_gameState?==?GS_SPLASH?)
{
m_bSingle?=?!m_bSingle;
return?0;
}
break;
case?VK_PRIOR:
if(?m_gameState?==?GS_ACTIVE?&&?m_nLevel?>?1
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????5273??2000-02-16?19:50??坦克大戰\Game\BattleCity.dsp
?????文件???????2114??2000-02-17?22:53??坦克大戰\Game\BattleCity.rc
?????文件??????34847??2000-07-02?17:40??坦克大戰\Game\Game.cpp
?????文件???????2649??2000-05-20?19:24??坦克大戰\Game\Game.h
?????文件???????5298??2000-05-20?20:01??坦克大戰\Game\Input.cpp
?????文件???????1026??2000-05-20?19:33??坦克大戰\Game\Input.h
?????文件???????9533??2000-05-20?19:43??坦克大戰\Game\Plane.cpp
?????文件???????1638??2000-05-20?19:24??坦克大戰\Game\Plane.h
?????文件????????504??2000-02-13?11:59??坦克大戰\Game\resource.h
?????文件???????3218??2000-02-12?11:22??坦克大戰\Game\Sound.cpp
?????文件????????903??2000-02-12?11:22??坦克大戰\Game\Sound.h
?????文件??????10968??2000-07-02?17:40??坦克大戰\Game\Sprite.cpp
?????文件???????3619??2000-07-02?17:40??坦克大戰\Game\Sprite.h
?????文件???????9678??1999-06-18?12:06??坦克大戰\Game\wavread.cpp
?????文件???????1232??1999-06-18?12:06??坦克大戰\Game\wavread.h
????..AD...?????????0??2006-02-10?11:52??坦克大戰\Game\Release
????..AD...?????????0??2006-02-10?11:52??坦克大戰\Game\Debug
?????文件???????1950??1996-06-19?21:58??坦克大戰\Game\sound\Gunfire.wav
?????文件????????790??1996-06-23?22:15??坦克大戰\Game\sound\hit.wav
?????文件???????3626??1996-06-22?14:20??坦克大戰\Game\sound\Fanfare.wav
?????文件???????1784??1996-06-22?11:03??坦克大戰\Game\sound\Peow.wav
?????文件???????9720??1996-06-22?10:35??坦克大戰\Game\sound\Bang.wav
????..AD...?????????0??2006-02-10?11:52??坦克大戰\Game\sound
?????文件???????1078??2000-02-17?22:53??坦克大戰\Game\res\tank.ico
????..AD...?????????0??2006-02-10?11:52??坦克大戰\Game\res
?????文件????????242??2000-02-13?00:10??坦克大戰\Game\map\level1.map
?????文件????????228??2000-02-11?17:10??坦克大戰\Game\map\level2.map
?????文件????????217??2000-02-11?17:14??坦克大戰\Game\map\level3.map
?????文件????????253??2000-02-13?17:13??坦克大戰\Game\map\level4.map
?????文件????????217??2000-02-13?17:14??坦克大戰\Game\map\level5.map
............此處省略39個文件信息
- 上一篇:C++模擬ATM取款源代碼
- 下一篇:人事管理系統C++源代碼
評論
共有 條評論