資源簡介
第五個作品 這次使用類把角色封裝起來,便于實行多個敵人的產生,原本主角也應該那樣做的,只是剛開始的時候沒有想好,沒做成,所以代碼有點繁瑣,在內存處理上也沒有做得很好,因為沒有學到優化的方式,所以載入時間有點長,稍等十幾秒應該就載入成功了,敵人AI也是自己構思出來的,所以可能比較簡單,希望能對大家有幫助。
by巔鋒
代碼片段和文件信息
/*************************************
游戲引擎源文件?GameEngine.cpp
*************************************/
#include?“GameEngine.h“
/*?導入游戲引擎中需要用到的頭文件和相關庫文件?*/
#include?“winuser.h“
#include?“mmsystem.h“
#include?“wingdi.h“
#pragma???comment(lib“user32.lib“)
#pragma???comment(lib“winmm.lib“)
#pragma???comment(lib“gdi32.lib“)
/*?初始化游戲引擎靜態指針?*/
GameEngine?*?GameEngine::m_pGameEngine=NULL;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*?游戲引擎構造函數?*/
GameEngine::GameEngine(HINSTANCE?hInstanceLPTSTR?szWindowClassLPTSTR?sztitleWORD?wIconWORD?wSmallIconBOOL?bFullScreenint?nColorbitint?nWidthint?nHeight)
{
m_pGameEngine=this; //將當前實例賦給靜態指針m_pGameEngine
m_hInstance=hInstance; //設置引擎實例為當前程序實例句柄
lstrcpy(m_szWindowClassszWindowClass); //將窗口類注冊名稱賦給_szWindowClass
lstrcpy(m_sztitlesztitle); //將標題賦給m_sztitle
/*?設置屏幕模式和大小?*/
m_bFullScreen=bFullScreen;
m_nColorbit=nColorbit;
m_nWidth=nWidth;
m_nHeight=nHeight;
/*設置圖標和光標*/
m_wIcon=wIcon;
m_wSmallIcon=wSmallIcon;
/*?記錄游戲開始時間和下次循環時間?*/
m_lStartTime=timeGetTime();
m_lNextGameTick=m_lStartTime;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*?游戲引擎析構函數?*/
GameEngine::~GameEngine()?{???}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*?創建游戲窗口?*/
BOOL GameEngine::CreateGameWindow()
{
WNDCLASSEX?wcApp; //聲明窗口類
HWND?hWnd=NULL; //聲明程序主窗口句柄
int?nPosXnPosYnWndWidthnWndHeight; //聲明窗口位置和大小變量
DWORD?dwWinstyle; //聲明窗口風格變量
wcApp.cbSize=sizeof(wcApp);
//給窗口屬性賦值
wcApp.lpszClassName=m_szWindowClass; //設置窗口類名
wcApp.style=CS_HREDRAW; //定義窗口風格
wcApp.lpfnWndProc=WndProc; //指定消息處理函數
wcApp.hInstance=m_hInstance; //指定義窗口應用程序的句柄
wcApp.cbWndExtra=0;
wcApp.cbClsExtra=0;
//加載程序圖標(大)
wcApp.hIconSm=LoadIcon(m_hInstance?MAKEINTRESOURCE(m_wIcon));
//加載程序圖標(小)
wcApp.hIcon=LoadIcon(m_hInstance?MAKEINTRESOURCE(m_wSmallIcon));
wcApp.hCursor=LoadCursor(NULLIDC_ARROW); //加載鼠標樣式
wcApp.hbrBackground=(HBRUSH)(COLOR_WINDOW); //設置窗口背景色
wcApp.lpszMenuName=NULL; //設置窗口沒有菜單
RegisterClassEx(&wcApp); //注冊窗口類
/*使用DEVMODE結構設置屏幕顯示模式*/
DEVMODE?DevMode;
ZeroMemory(&DevMode?sizeof(DevMode)); //將結構DevMode的內存清零
DevMode.dmSize=sizeof(DevMode); //設置DevMode存儲空間以存儲屏幕屬性數據
//用當前屏幕顯示模式設置填充DevMode
EnumDisplaySettings(NULLENUM_CURRENT_SETTINGS&DevMode);
BOOL?bDisplayChange=FALSE; //標識屏幕顯示模式是否改變
//如果屏幕顯示模式位數與游戲不同
if( DevMode.dmBitsPerPel!=(unsigned?long)m_nColorbit)
{
DevMode.dmBitsPerPel=m_nColorbit; //設置顯示模式位數
bDisplayChange=TRUE;
}
//如果全屏狀態下的屏幕尺寸與窗口不同;或屏幕尺寸小于窗口都需要重設顯示模式
if((m_bFullScreen?&&?m_nWidth!=GetSystemMetrics(SM_CXSCREEN))
||?m_nWidth>GetSystemMetrics(SM_CXSCREEN)) ?
{
DevMode.dmPelsWidth=m_n
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-03-30?14:48??5GoFight\
?????文件????????2238??2001-04-17?18:13??5GoFight\Arrow.cur
?????目錄???????????0??2013-03-23?13:18??5GoFight\Debug\
?????文件???????27302??2013-03-23?13:18??5GoFight\Debug\GameEngine.obj
?????文件???????????0??2013-03-23?13:18??5GoFight\Debug\GameEngine.sbr
?????文件???????21876??2013-03-23?13:18??5GoFight\Debug\GameMusic.obj
?????文件???????????0??2013-03-23?13:18??5GoFight\Debug\GameMusic.sbr
?????文件???????37786??2013-03-23?13:18??5GoFight\Debug\GamePhysics.obj
?????文件???????????0??2013-03-23?13:18??5GoFight\Debug\GamePhysics.sbr
?????文件????????1301??2013-03-18?21:02??5GoFight\Debug\Global.obj
?????文件???????????0??2013-03-18?21:02??5GoFight\Debug\Global.sbr
?????文件?????2139136??2013-03-23?13:18??5GoFight\Debug\GoFight.bsc
?????文件??????307263??2013-03-23?13:18??5GoFight\Debug\GoFight.exe
?????文件??????363020??2013-03-23?13:18??5GoFight\Debug\GoFight.ilk
?????文件?????5732524??2013-03-23?13:18??5GoFight\Debug\GoFight.pch
?????文件??????574464??2013-03-23?13:18??5GoFight\Debug\GoFight.pdb
?????文件????????6684??2013-03-23?13:18??5GoFight\Debug\resource.res
?????文件???????67936??2013-03-23?13:18??5GoFight\Debug\RobotAI.obj
?????文件???????????0??2013-03-23?13:18??5GoFight\Debug\RobotAI.sbr
?????文件???????44661??2013-03-23?13:18??5GoFight\Debug\Sprite.obj
?????文件???????????0??2013-03-23?13:18??5GoFight\Debug\Sprite.sbr
?????文件???????51658??2013-03-23?13:18??5GoFight\Debug\SpriteManage.obj
?????文件???????????0??2013-03-23?13:18??5GoFight\Debug\SpriteManage.sbr
?????文件??????197632??2013-03-23?13:18??5GoFight\Debug\vc60.idb
?????文件??????118784??2013-03-23?13:18??5GoFight\Debug\vc60.pdb
?????文件???????98775??2013-03-23?13:18??5GoFight\Debug\Winapp.obj
?????文件???????????0??2013-03-23?13:18??5GoFight\Debug\Winapp.sbr
?????文件????????9498??2013-03-09?21:34??5GoFight\GameEngine.cpp
?????文件????????4217??2013-03-08?16:12??5GoFight\GameEngine.h
?????文件????????4970??2008-09-28?10:44??5GoFight\GameMusic.cpp
?????文件????????1091??2008-09-28?10:33??5GoFight\GameMusic.h
............此處省略62個文件信息
評論
共有 條評論