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

📄 cameraeffectunit.cpp

📁 墨香最新私服
💻 CPP
字号:
// CameraEffectUnit.cpp: implementation of the CCameraEffectUnit class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "CameraEffectUnit.h"
#include "CameraEffectUnitDesc.h"
#include "..\ObjectManager.h"
#include "..\MHCamera.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CCameraEffectUnit::CCameraEffectUnit()
{
	
}

CCameraEffectUnit::~CCameraEffectUnit()
{
}

void CCameraEffectUnit::Initialize(CEffectUnitDesc* pEffectUnitDesc,EFFECTPARAM* pEffectParam)
{
	CCameraEffectUnitDesc* pDesc = (CCameraEffectUnitDesc*)m_pEffectUnitDesc;

	CAMERA->InitCamera(pDesc->m_CameraNum,pDesc->m_InitAngleX,pDesc->m_InitAngleY,pDesc->m_InitDistance,(CObject*)NULL);

	CEffectUnit::Initialize(pEffectUnitDesc,pEffectParam);
}
void CCameraEffectUnit::Release()
{
	CCameraEffectUnitDesc::ReleaseUnit(this);
}

BOOL CCameraEffectUnit::On(EFFECTPARAM* pParam)
{
	CCameraEffectUnitDesc* pDesc = (CCameraEffectUnitDesc*)m_pEffectUnitDesc;

	CObject* pObject;
	if(pDesc->IsDangledToOperator())	// 坷欺饭捞磐 or 鸥南
		pObject = pParam->m_pOperator;
	else
		pObject = pParam->m_pTargetSet[0].pTarget;

	if(pObject->IsInited() == FALSE)	// 纳腐磐啊 粮犁窍瘤 臼栏搁 return
		return TRUE;
	
	if(pParam->m_dwFlag & EFFECT_FLAG_HEROATTACK == FALSE)
		return TRUE;

	CAMERA->SetCameraPivotObject(pDesc->m_CameraNum,pObject);

	if(pDesc->m_bRelatedCoordinate)		// 惑措阿档肺 函券
	{
		float angleDeg = pDesc->m_InitAngleY+RADTODEG(pObject->GetAngle());
		CAMERA->SetTargetAngleY(pDesc->m_CameraNum,angleDeg,0);
	}

	CAMERA->SetCurCamera(pDesc->m_CameraNum);

	return TRUE;
}
BOOL CCameraEffectUnit::Off(EFFECTPARAM* pParam)
{
	CCameraEffectUnitDesc* pDesc = (CCameraEffectUnitDesc*)m_pEffectUnitDesc;

	CObject* pObject;
	if(pDesc->IsDangledToOperator())	// 坷欺饭捞磐 or 鸥南
		pObject = pParam->m_pOperator;
	else
		pObject = pParam->m_pTargetSet[0].pTarget;

	if(pObject->IsInited() == FALSE)	// 纳腐磐啊 粮犁窍瘤 臼栏搁 return
		return TRUE;	
	
	if(pParam->m_pOperator->GetID() != HERO->GetID() &&
		pParam->m_pTargetSet[0].pTarget->GetID() != HERO->GetID() )		// if He is not Hero, just return.
		return TRUE;


	CAMERA->ChangeToDefaultCamera();

	return TRUE;
}

BOOL CCameraEffectUnit::CameraRotate(EFFECTPARAM* pParam,float fRotateAngle,DWORD Duration)
{
	CCameraEffectUnitDesc* pDesc = (CCameraEffectUnitDesc*)m_pEffectUnitDesc;

	CAMERA->Rotate(pDesc->m_CameraNum,fRotateAngle,Duration);

	return TRUE;
}

BOOL CCameraEffectUnit::CameraAngle(EFFECTPARAM* pParam,float fTargetAngle,DWORD Duration)
{
	CCameraEffectUnitDesc* pDesc = (CCameraEffectUnitDesc*)m_pEffectUnitDesc;

	CAMERA->SetTargetAngleX(pDesc->m_CameraNum,fTargetAngle,Duration);

	return TRUE;
}

BOOL CCameraEffectUnit::CameraZoom(EFFECTPARAM* pParam,float fZoomDistance,DWORD Duration)
{
	CCameraEffectUnitDesc* pDesc = (CCameraEffectUnitDesc*)m_pEffectUnitDesc;

	CAMERA->ZoomDistance(pDesc->m_CameraNum,fZoomDistance,Duration);

	return TRUE;
}

BOOL CCameraEffectUnit::ChangeCamera(EFFECTPARAM* pParam,int Camera,DWORD Duration)
{
	CCameraEffectUnitDesc* pDesc = (CCameraEffectUnitDesc*)m_pEffectUnitDesc;

	CObject* pObject;
	if(pDesc->IsDangledToOperator())	// 坷欺饭捞磐 or 鸥南
		pObject = pParam->m_pOperator;
	else
		pObject = pParam->m_pTargetSet[0].pTarget;

	if(pObject->IsInited() == FALSE)	// 纳腐磐啊 粮犁窍瘤 臼栏搁 return
		return TRUE;	
	
	if(pParam->m_pOperator->GetID() != HERO->GetID() &&
		pParam->m_pTargetSet[0].pTarget->GetID() != HERO->GetID() )		// if He is not Hero, just return.
		return TRUE;


	CAMERA->ChangeCameraSmooth(Camera,Duration);

	return TRUE;
}

void CCameraEffectUnit::DoProcess(DWORD tickTime,EFFECTPARAM* pParam)
{

}

⌨️ 快捷键说明

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