53 lines
1.2 KiB
C++
53 lines
1.2 KiB
C++
#include "StdAfx.h"
|
|
#include "SCRAlphaBlend.h"
|
|
#include "ActionSignal.h"
|
|
#include "ActionObject.h"
|
|
#include "InputReceiver.h"
|
|
#include "RenderBase.h"
|
|
#include "resource.h"
|
|
#include "MainFrm.h"
|
|
#include "UserMessage.h"
|
|
#include "PaneDefine.h"
|
|
|
|
|
|
CSCRAlphaBlend::CSCRAlphaBlend( const char *szSignalName )
|
|
: CSignalCustomRender( szSignalName )
|
|
{
|
|
}
|
|
|
|
CSCRAlphaBlend::~CSCRAlphaBlend()
|
|
{
|
|
}
|
|
|
|
void CSCRAlphaBlend::Initialize()
|
|
{
|
|
m_bActivate = true;
|
|
OnModify();
|
|
}
|
|
|
|
void CSCRAlphaBlend::OnModify()
|
|
{
|
|
}
|
|
|
|
void CSCRAlphaBlend::OnSelect( bool bFirst )
|
|
{
|
|
}
|
|
|
|
void CSCRAlphaBlend::OnUnSelect()
|
|
{
|
|
}
|
|
|
|
void CSCRAlphaBlend::OnProcess( LOCAL_TIME LocalTime, float fDelta )
|
|
{
|
|
float fStartAlpha = m_pSignal->GetProperty(0)->GetVariableFloat();
|
|
float fEndAlpha = m_pSignal->GetProperty(1)->GetVariableFloat();
|
|
|
|
CActionObject *pObject = (CActionObject *)m_pSignal->GetParent()->GetParent();
|
|
EtAniObjectHandle hHandle = pObject->GetObjectHandle();
|
|
if( !hHandle ) return;
|
|
|
|
float fFrame = pObject->GetCurFrame();
|
|
float fValue = 1.f / ( m_pSignal->GetEndFrame() - m_pSignal->GetStartFrame() ) * ( fFrame - m_pSignal->GetStartFrame() );
|
|
float fCurAlpha = fStartAlpha + ( ( fEndAlpha - fStartAlpha ) * fValue );
|
|
hHandle->SetObjectAlpha( fCurAlpha );
|
|
}
|