|
|
一个有多个关卡的小游戏,渲染的方式应该如何设计比较合理呢?
以下是我原来的方式:
//渲染游戏
VOID Render()
{
g_pSceneManager->GetDevice()->Clear( 0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER,
D3DCOLOR_XRGB(0,0,0), 1.0f, 0 );
g_pSceneManager->BeginRender();
switch(g_pGameState)
{
case LOGO: //欢迎界面
break;
case MENU: //菜单选择画面
g_pMenu->Render();
break;
case STORYMODEL: //故事模式
break;
case FREEMODEL: //自由模式
break;
case OPTION: //选项
break;
case HEROLIST: //排行榜
break;
}
g_pSceneManager->EndRender();
}
g_pGameState是一个枚举值 enum GameSate{ LOGO,MENU, STORYMODEL,FREEMODEL,OPTION, HEROLIST, EXIT };
用来表示目前渲染的是哪一种界面
在主Render函数中通过switch判断渲染的状态进入进行对应的渲染
例如g_pMenu就是一个MainMenu(主界面菜单)的对象
这样一来我就要为每一种GameState写一个含有Render方法的类来进行相应的显示
然后为每一个关卡再写一个含有Render方法的类来进行关卡的渲染
不知道这样的设计是否得当?
更好更普遍的设计应该是怎样的呢? |
|