#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 ); }