SpriteAction_ButtonStateCrossFade.cpp
Go to the documentation of this file.00001 //*** SpriteAction_ButtonStateCrossFade.cpp *** 00002 00003 #include "SpriteAction_ButtonStateCrossFade.h" 00004 #include "ColorHelper.h" 00005 #include "Sprite.h" 00006 #include "Button.h" 00007 00008 00009 //*** Constructor *** 00010 00011 SpriteAction_ButtonStateCrossFade::SpriteAction_ButtonStateCrossFade(float time): 00012 time_(time), 00013 elapsedTime_(0) 00014 { 00015 if (time_<=0) 00016 { 00017 time_=FLOAT_EPSILON; 00018 } 00019 } 00020 00021 00022 //*** Setup *** 00023 00024 void SpriteAction_ButtonStateCrossFade::Setup(SpriteController* controller, Sprite* sprite) 00025 { 00026 Button* button=static_cast<Button*>(sprite); 00027 button->SetStateCrossFadeAlpha(255,0); 00028 } 00029 00030 00031 //*** Update *** 00032 00033 void SpriteAction_ButtonStateCrossFade::Update(SpriteController* controller, Sprite* sprite, float deltaTime) 00034 { 00035 Button* button=static_cast<Button*>(sprite); 00036 00037 elapsedTime_+=deltaTime; 00038 00039 if (elapsedTime_>time_) 00040 { 00041 button->SetStateCrossFadeAlpha(0,255); 00042 ActionCompleted(); 00043 return; 00044 } 00045 00046 // Handle state crossfade 00047 if (elapsedTime_<=time_*0.5f) 00048 { 00049 float i=elapsedTime_/(time_*0.5f); 00050 button->SetStateCrossFadeAlpha(255,(unsigned char)(255*i)) ; 00051 } 00052 else 00053 { 00054 float i=(elapsedTime_-time_*0.5f)/(time_*0.5f); 00055 button->SetStateCrossFadeAlpha(255-(unsigned char)(255*i),255); 00056 } 00057 } 00058
Reproduction/republishing of any material on this site without permission is strictly prohibited.
