gsgame.cpp
来自「网络泡泡被.net管理」· C++ 代码 · 共 189 行
CPP
189 行
// GsGame.cpp: implementation of the CGsGame class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "GsGame.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CGsGame::CGsGame(CGsEngine* pEngine)
:m_UI(pEngine)
{
m_pEngine = pEngine;
m_UI.m_pEngine = pEngine;
m_key_style = "default";
}
CGsGame::~CGsGame()
{
Cleanup();
}
VOID CGsGame::Cleanup()
{
m_UI.Cleanup();
if(m_pEngine->m_ptr_game==this)
m_pEngine->m_ptr_game = NULL;
std::list<CGsSound*>::iterator it_sound = m_list_sound.begin();
while(it_sound!=m_list_sound.end())
{
if(*it_sound)
{
delete(*it_sound);
}
it_sound = m_list_sound.erase(it_sound);
}
}
LRESULT CGsGame::MsgProc( UINT uMsg, WPARAM wParam, LPARAM lParam )
{
return m_UI.MsgProc( uMsg, wParam, lParam );
}
ID CGsGame::OnMouseMove(UINT nFlags, GPOINT point)
{
return m_UI.OnMouseMove(nFlags, point- m_UI.m_rcClient.top_left());
}
ID CGsGame::OnLButtonDown( UINT nFlags, GPOINT point )
{
return m_UI.OnLButtonDown( nFlags, point- m_UI.m_rcClient.top_left() );
}
ID CGsGame::OnLButtonUp( UINT nFlags, GPOINT point )
{
return m_UI.OnLButtonUp( nFlags, point- m_UI.m_rcClient.top_left() );
}
ID CGsGame::OnLButtonDbClk( UINT nFlags, GPOINT point )
{
return m_UI.OnLButtonDbClk( nFlags, point- m_UI.m_rcClient.top_left() );
}
ID CGsGame::OnRButtonDown( UINT nFlags, GPOINT point )
{
return m_UI.OnRButtonDown( nFlags, point- m_UI.m_rcClient.top_left() );
}
ID CGsGame::OnRButtonUp( UINT nFlags, GPOINT point )
{
return m_UI.OnRButtonUp( nFlags, point- m_UI.m_rcClient.top_left() );
}
ID CGsGame::OnRButtonDbClk( UINT nFlags, GPOINT point )
{
return m_UI.OnRButtonDbClk( nFlags, point- m_UI.m_rcClient.top_left() );
}
ID CGsGame::OnMouseWheel(UINT nFlags, short zDelta, GPOINT point)
{
return m_UI.OnMouseWheel(nFlags, zDelta, point- m_UI.m_rcClient.top_left());
}
ID CGsGame::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
return m_UI.OnChar(nChar, nRepCnt, nFlags);
}
ID CGsGame::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
return m_UI.OnKeyDown(nChar, nRepCnt, nFlags);
}
ID CGsGame::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
{
return m_UI.OnKeyUp(nChar, nRepCnt, nFlags);
}
HRESULT CGsGame::RenderUI()
{
m_pEngine->SetTextureStageState( 0, D3DTSS_MINFILTER, D3DTFN_POINT );
m_pEngine->SetTextureStageState( 0, D3DTSS_MAGFILTER, D3DTFN_POINT );
return m_UI.Draw(m_UI.m_rcClient.top_left());
}
FLAG CGsGame::Update(DWORD dwPassTime)
{
std::list<CGsSound*>::iterator it_sound = m_list_sound.begin();
while(it_sound!=m_list_sound.end())
{
if(*it_sound)
{
if((*it_sound)->IsFree())
{
delete(*it_sound);
it_sound = m_list_sound.erase(it_sound);
continue;
}
}
else
{
it_sound = m_list_sound.erase(it_sound);
continue;
}
it_sound++;
}
return 0;
}
HRESULT CGsGame::Render()
{
m_pEngine->PreparePaint();
return RenderUI();
// return S_OK;
}
VOID CGsGame::OnUICmd(CGsUIPanel *pUI, UINT msg, LONG param)
{
}
VOID CGsGame::ReleaseSource()
{
m_UI.ReleaseSource();
}
HRESULT CGsGame::RestoreSource()
{
return m_UI.RestoreSource();
}
bool CGsGame::play_sound(const char *strSound, int volume)
{
if (m_pEngine==NULL)
{
return false;
}
CGsSound* pSound = NULL;
pSound = m_pEngine->FindSound(strSound);
if(pSound==NULL)
return false;//pSound = m_pWorld->GetGsEngine()->FindSound(strSound);
pSound->Play();
m_list_sound.push_back(pSound);
return true;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?