⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cgameframe.cpp

📁 fruitwar and engine
💻 CPP
字号:
#include "stdafx.h"

//-------------------------------------------------
//desc:			构造
//-------------------------------------------------
CGameFrame::CGameFrame( void )
:m_pGameLogin( NULL )
,m_pLogo( NULL )
,m_pGameContent( NULL )
,m_pLoading( NULL )
,m_pGameOver( NULL )
{
	//获取图形系统接口
	m_pRS				= (IRenderSystem*) FOXRENDERSYSTEM::CreateInstance( CLD_IRENDERSYSTEM );
	m_pResMgr			= (IResManage*) FOXRENDERSYSTEM::CreateInstance( CLD_IRESMANAGE );
	m_pCamera			= (ICamera*) FOXRENDERSYSTEM::CreateInstance( CLD_ICAMERA );
	m_pGuiMgr			= (IGuiManage*) FOXRENDERSYSTEM::CreateInstance( CLD_IGUIMANAGE );
	m_pFontMgr			= (IFontManage*) FOXRENDERSYSTEM::CreateInstance( CLD_IFONTMANAGE );
	
	//获取声音系统接口
	m_pCDMgr			= (ICDManage*) FOXMEDIASYSTEM::CreateInstance( CLD_ICDMANAGE );
	m_pSoundMgr			= (ISoundManage*) FOXMEDIASYSTEM::CreateInstance( CLD_ISOUNDMANAGE );
}

//-------------------------------------------------
//desc:			析构
//-------------------------------------------------
CGameFrame::~CGameFrame( void )
{
	//结束系统
	this->ShutDown();
}

//-------------------------------------------------
//desc:			引擎初始化
//-------------------------------------------------
bool CGameFrame::InitEngine( HWND a_hWnd )
{
	//渲染系统初始化
	if( !m_pRS->InitSystem( a_hWnd ) )
	{
		return false;
	}
	//字体管理初始化
	//if( !m_pFontMgr->Init() )
	{
		//return false;
	}
	
	return true; 
}

//-------------------------------------------------
//desc:			游戏初始化
//-------------------------------------------------
bool CGameFrame::InitGame( void )
{
	//LOGO场景创建 
	m_pLogo		= new CLogo; 
	
	//读取LOADING
	m_pLoading  = m_pResMgr->CreateSprite( "loading.spr","SprRes/SprRes.pack" );
	m_pEnd		= m_pResMgr->CreateSprite( "end.spr","SprRes/SprRes.pack" );

	return true;
}

//-------------------------------------------------
//desc:			销毁
//-------------------------------------------------
bool CGameFrame::ShutDown( void )
{
	//释放资源
	SafeRelease( m_pLoading );
	SafeRelease( m_pEnd );

	//释放场景
	SafeDelete( m_pLogo );
	SafeDelete( m_pGameLogin );
	SafeDelete( m_pGameContent );
	SafeDelete( m_pGameOver );

	//释放接口
	SafeRelease( m_pRS );
	SafeRelease( m_pResMgr );
	SafeRelease( m_pCamera );
	SafeRelease( m_pGuiMgr );
	SafeRelease( m_pFontMgr );
	SafeRelease( m_pCDMgr );
	SafeRelease( m_pSoundMgr );

	return true;
}

//-------------------------------------------------
//desc:			消息发送
//-------------------------------------------------
void CGameFrame::PostMessage( DWORD a_dwMsg,char a_chWORD )
{
	//消息发送
	if( m_pLogo != NULL )
	{
		m_pLogo->PostMessage( a_dwMsg,a_chWORD );
	}
	if( m_pGameLogin != NULL )
	{
		m_pGameLogin->PostMessage( a_dwMsg,a_chWORD );
	}
	if( m_pGameContent != NULL )
	{
		m_pGameContent->PostMessage( a_dwMsg,a_chWORD );
	}
	if( m_pGameOver != NULL )
	{
		m_pGameOver->PostMessage( a_dwMsg,a_chWORD );
	}
}

//-------------------------------------------------
//desc:			逻辑更新
//-------------------------------------------------
bool CGameFrame::Update( void )
{
	//进入第一个场景
	if( m_pLogo->Updata() == false )
	{
		//释放场景
		SafeDelete( m_pLogo );
		return false;
	}
	else
	{
		//释放场景
		SafeDelete( m_pLogo );
	}

	//绘制LOADING
	m_pRS->BeginScene();
	m_pLoading->SetPostion( 165,203 );
	m_pLoading->Draw( true );
	m_pRS->EndScene();

	//创建选择场景
	m_pGameLogin	= new CGameLogin;
	m_pGameContent	= new CGameContent;
	m_pGameOver		= new CGameOver;
	
	//进入第入登陆场景
	if( m_pGameLogin->Updata() == false )
	{
		return false;
	}

	//进入游戏循环
	while(1)
	{
		//进入游戏主场景
		if( m_pGameContent->Updata() == false )
		{
			return true;
		}
		//游戏GAMEOVER场景
		if( m_pGameOver->Updata() == false )
		{
			return true;
		}
	}
	
	return true;
}

void CGameFrame::RenderEnd( void )
{
	//绘制END
	m_pRS->BeginScene();
	m_pEnd->SetPostion( 165,203 );
	m_pEnd->Draw( true );
	m_pRS->EndScene();
	Sleep(1500);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -