首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

生手学游戏编程,但是一开始就难倒了

2013-04-09 
新手学游戏编程,但是一开始就难倒了#includeGameEngine.hGameEngine *GameEngine::m_pGameEngineNULL

新手学游戏编程,但是一开始就难倒了
#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编程后面的。
[解决办法]

引用:
搜网络教程“学OpenGL编3D游戏”。

有时“霸王硬上弓”也是一种可行的学习方法。
[解决办法]
一个大神曾经说把i/0看懂 我没这样做
现在后悔了!
[解决办法]
推荐游戏开发工具 EZ2D 虽然是手游开发工具,不过可以通过这个工具简单快捷的实现游戏开发的小小梦想,EZ2D可以通过百度搜索找到相关下载地址。

热点排行