www.pudn.com > Mir2ExCodev1.rar > BackGround.cpp


#include "stdafx.h" 
 
#define AVI_CREATECHAR						".\\CreateChr.avi" 
#define AVI_STARTGAME						".\\StartGame.avi" 
 
#define IMG_IDX_SELECT_CHR_BACK				50 
 
#define IMG_IDX_CREATE_CHR_BACK				90 
 
#define BACK_IMG_POS_X						0 
#define BACK_IMG_POS_Y						0 
 
CBackGround::CBackGround() 
{ 
	m_nRenderState = 0; 
	m_pxImage = NULL; 
} 
 
CBackGround::~CBackGround() 
{ 
	m_xCreateChrAvi.ReleaseAvi(); 
	m_xStartGameAvi.ReleaseAvi(); 
} 
 
VOID CBackGround::Create(CWHWilImageData* pxImage) 
{ 
	m_pxImage = pxImage; 
	m_xCreateChrAvi.InitAvi(g_xSound.GetSoundObject()->GetDS()); 
	m_xStartGameAvi.InitAvi(g_xSound.GetSoundObject()->GetDS()); 
} 
 
HRESULT	CBackGround::OnKeyDown(WPARAM wParam, LPARAM lParam) 
{ 
	return 0; 
} 
 
HRESULT CBackGround::OnButtonDown(WPARAM wParam, LPARAM lParam) 
{ 
 
	return 0; 
} 
 
HRESULT CBackGround::OnButtonDown(POINT ptMouse) 
{ 
	return 0; 
} 
 
HRESULT	CBackGround::OnButtonUp(WPARAM wParam, LPARAM lParam) 
{ 
 
	return 0; 
} 
 
HRESULT CBackGround::OnButtonUp(POINT ptMouse) 
{ 
 
	return 0; 
} 
 
LRESULT	CBackGround::OnMouseMove(WPARAM wParam, LPARAM lParam) 
{ 
	return 0; 
} 
 
VOID CBackGround::Render(INT	nLoopTime) 
{ 
	if(m_fIsActive) 
	{ 
		switch(m_nRenderState) 
		{ 
			case _RENDER_STILL_1: 
			{ 
				m_pxImage->NewSetIndex(IMG_IDX_SELECT_CHR_BACK); 
				g_xMainWnd.DrawWithImageForComp(BACK_IMG_POS_X, BACK_IMG_POS_Y, 
												m_pxImage->m_lpstNewCurrWilImageInfo->shWidth,m_pxImage->m_lpstNewCurrWilImageInfo->shHeight, 
												(WORD*)(m_pxImage->m_pbCurrImage)); 
				break; 
			} 
			case _RENDER_AVI_IN: 
			{ 
				if(!m_xCreateChrAvi.Draw(nLoopTime)) 
				{ 
					m_nRenderState = _RENDER_STILL_2; 
				} 
				break; 
			} 
			case _RENDER_STILL_2: 
			{ 
				m_pxImage->NewSetIndex(IMG_IDX_CREATE_CHR_BACK); 
				g_xMainWnd.DrawWithImageForComp(BACK_IMG_POS_X, BACK_IMG_POS_Y, 
												m_pxImage->m_lpstNewCurrWilImageInfo->shWidth,m_pxImage->m_lpstNewCurrWilImageInfo->shHeight, 
												(WORD*)(m_pxImage->m_pbCurrImage)); 
				break; 
			} 
			case _RENDER_AVI_OUT: 
			{ 
				if(!m_xCreateChrAvi.Draw(nLoopTime)) 
					m_nRenderState = _RENDER_STILL_1; 
				break; 
			} 
			case _RENDER_AVI_START: 
			{ 
				if(!m_xStartGameAvi.Draw(nLoopTime)) 
					m_nRenderState = _RENDER_STARTGAME; 
				break; 
			} 
		} 
	} 
} 
 
 
VOID CBackGround::SetRenderState(INT nState) 
{ 
	RECT tRect; 
	SetRect(&tRect,0,0,640,480); 
 
	AllStopAvi(); 
	switch(m_nRenderState) 
	{ 
		case _RENDER_AVI_IN: 
		case _RENDER_AVI_OUT: 
			m_xCreateChrAvi.Stop(); 
			break; 
		case _RENDER_AVI_START: 
			m_xStartGameAvi.Stop(); 
			break; 
	} 
 
	m_nRenderState = nState; 
 
	switch(m_nRenderState) 
	{ 
		case _RENDER_AVI_IN: 
		{ 
			m_xCreateChrAvi.Create(AVI_CREATECHAR, FALSE); 
			m_xCreateChrAvi.SetDestRect(tRect); 
			m_xCreateChrAvi.Start(); 
			break; 
		} 
		case _RENDER_AVI_OUT: 
		{ 
			m_xCreateChrAvi.Create(AVI_CREATECHAR, FALSE,FALSE); 
			m_xCreateChrAvi.SetDestRect(tRect); 
			m_xCreateChrAvi.Start(); 
			break; 
		} 
		case _RENDER_AVI_START: 
		{ 
			m_xStartGameAvi.Create(AVI_STARTGAME,FALSE); 
			m_xStartGameAvi.SetDestRect(tRect); 
			m_xStartGameAvi.Start(); 
			break; 
		} 
	} 
} 
 
INT CBackGround::GetRenderState(VOID) 
{ 
	return m_nRenderState; 
} 
VOID CBackGround::AllStopAvi(VOID) 
{ 
	m_xCreateChrAvi.Stop(); 
	m_xStartGameAvi.Stop(); 
}