Files
2026-06-01 12:46:52 +02:00

55 lines
1005 B
C++

#include "stdafx.h"
#include "SGameSceneLifeActor.h"
#include "SGameSceneManager.h"
using namespace rp;
SGameSceneLifeActor::SGameSceneLifeActor(
DWORD lifeTime
, DWORD fadeInTime
, DWORD fadeOutTime )
: SGameSceneActor()
, mBeginTime ( 0 )
, mLifeTime ( lifeTime )
, mFadeInTime ( fadeInTime )
, mFadeOutTime ( fadeOutTime )
{
}
SGameSceneLifeActor::~SGameSceneLifeActor()
{
}
void SGameSceneLifeActor::onActivate()
{
mBeginTime = 0;
}
void SGameSceneLifeActor::update( SGameScene* scene )
{
DWORD CurTime = scene->getSceneManager().timer().getTime();
if( mBeginTime == 0 )
mBeginTime = CurTime;
DWORD DiffTime = CurTime - mBeginTime;
if( DiffTime >= mLifeTime )
{
scene->activate( false );
return;
}
float Visibility = 1.f;
if( DiffTime < mFadeInTime )
{
Visibility = (float)DiffTime / mFadeInTime;
}
else if( DiffTime >= mLifeTime - mFadeOutTime )
{
Visibility = (float)( mLifeTime - DiffTime ) / mFadeOutTime;
}
scene->setLocalVisibility( Visibility );
}