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 + -
显示快捷键?