新手学游戏编程,但是一开始就难倒了
#include"GameEngine.h"
GameEngine *GameEngine::m_pGameEngine=NULL;
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
MSG msg;
static int iTickTringger=0;
int iTickCount;
if(GameINITialize(hInstance))
{
//
if(!GameEngine::GetEngine()->Initialize(iCmdShow))
return FALSE;
//
while(TRUE)
{
if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
{
//
if(msg.message==WM_QUIT)
break;
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
{
//
if(!GameEngine::GetEngine()->GetSleep())
{
//
iTickCount=GetTickCount();
if(iTickCount>iTickTringger)
{
iTickTringger=iTickCount+
GameEngine::GetEngine()->GetFrameDelay;
GameCycle();
}
}
}
}
return (int)msg.wParam;
}
//
GameEnd();
return TRUE;
}
LRESULT CALLBACK WndProc(HWND hWindow,UINT msg,WPARAM wParam,LPARAM lParam)
{
//
return GameEngine::GetEngine()->HandleEvent(hWindow,msg,wParam,lParam);
}
//
GameEngine::GameEngine(HINSTANCE hInstance,LPTSTR szWindowClass,LTPSTR szTitle,
WORD wIcon,WORD wSmallIcon,int iWidth,int iHeight)
{
m_pGameEngine=this;
m_hInstance=hInstance;
m_hWindow=NULL;
if(lstrelen(szWindowClass)>0)
lstrcpy(m_szWindowClass,szWindowClass);
if(lstrlen(szTitle)>0)
lstrcpu(m_szTitle,szTitle);
m_wIcon=wIcon;
m_wSmallIcon=wSmallIcon;
m_iWidth=iWidth;
m_iHeight=iHeight;
m_iFrameDelay=50;
m_bSleep=TRUE;
}
GameEngine::~GameEngine()
{
}
//
BOOL GameEngine::Initialize(int iCmdShow)
{
WNDCLASSEX wndclass;
//
wndclass.cbSize=sizeof(wndclass);
wndclass.style=CS_HREDRAW | CS_VERDRAW;
wndclass.lpfnWndProc=WndProc;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hInstance=m_hInstance;
wndclass.hIcon=LoadIcon(m_hInstance,
MAKEINTRESOURCE(GetIcon()));
wndclass.hIconSm=LoadIcon(m_hInstance,
MAKEINTRESOURCE(GetSmallIcon()));
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);
wndclass.lpszMenuName=NULL;
wndclass.lpszClassName=m_szWindowClass;
//
if(!RegisterClassEx(&wndclass))
return FALSE;
//
int iWindowWidth=m_iWidth+GetsystemMetrics(SM_CXFIXEDFRAME)*2,
iWindowHeight=m_iHeight+GetSystemMetrics(SM_CXFIXEDFRAME)*2+
GetSystemMetrics(SM_CYCAPTION);
if(wndclass.lpszClassName !=NULL)
iWindowHeight += GetSystemMetrics(SM_CYMENU);
int iXWindowPos=(GetSystemMetrics(SM_CXSCREEN)-iWindowWidth/2,
iYWindowPos=(GetSystemMetrics(SM_CYSCREEN)-iWindowHeight/2;
//
m_hWindow=CreateWindow(m_szWindowClass,m_szTitle,WS_POPUPWINDOW |
WS_CAPTION | WS_MINIMIZEBOX,iXWindowPos,iYWindowPos,iWindowWidth,
iWindowHeight,NULL,NULL,m_hInstance,NULL);
if(!m_hWindow)
return FALSE;
//
ShowWindow(m_hWindow,iCmdShow);
UpdateWindow(m_hWindow);
return TRUE;
}
LRESULT GameEngine::HandleEvent(HWND hWindow,UINT msg,WPARAM wParam,
LPARAM lParam)
{
//
switch(msg)
{
case WM_CREATE:
//
SetWindow(hWindow);
GameStart(hWindow);
return 0;
case WM_SETFOCUS:
//
GameActivate(hWindow);
SetSleep(FALSE);
return 0;
case WM_KILLFOCUS:
//
GameDeactivate(hWindow);
SetSleep(TRUE);
return 0;
case WM_PAINT:
HDChDC;
PAINTSTRUCT ps;
hDC=BeginPaint(hWindow,&ps);
//
GamePaint(hDC);
EndPaint(hWindow,&ps);
return 0;
case WM_DESTROY:
//
GameEnd();
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWindow,msg,wParam,lParam);
}
编译的时候总是显示出错,,
3 C:\Users\Administrator\Desktop\Game\GameEngine.cpp expected init-declarator before '*' token
3 C:\Users\Administrator\Desktop\Game\GameEngine.cpp expected `,' or `;' before '*' token
C:\Users\Administrator\Desktop\Game\GameEngine.cpp In function `int WinMain(HINSTANCE__*, HINSTANCE__*, CHAR*, int)':
后面还有好多,,不懂怎么改,用的是dec
游戏
[解决办法]
哥只会棋牌游戏
[解决办法]
搜网络教程“学OpenGL编3D游戏”。
[解决办法]
这完全不游戏编程的问题,而是你的C++基础语法都不了解,怎么开始游戏编程?
[解决办法]
想学游戏编程,首先是熟练使用C++,目测LZ肯定做不到。所以啊还是先学好C++吧,熟练掌握C++基本之后还要学习Windows编程呢,哪能那么快就接触游戏编程啊,我们学院的游戏编程课程是在Windows编程后面的。
[解决办法]