SpriteAction_AlphaPulse.cpp
Go to the documentation of this file.00001 //*** SpriteAction_AlphaPulse.cpp *** 00002 00003 #include "SpriteAction_AlphaPulse.h" 00004 #include "ColorHelper.h" 00005 #include "Sprite.h" 00006 #include "StandardLibrary.h" 00007 00008 00009 //*** Constructor *** 00010 00011 SpriteAction_AlphaPulse::SpriteAction_AlphaPulse(float speed): 00012 speed_(speed), 00013 currentSource_(0), 00014 currentTarget_(0) 00015 { 00016 if (speed_<=0) 00017 { 00018 speed_=FLOAT_EPSILON; 00019 } 00020 } 00021 00022 00023 //*** Setup *** 00024 00025 void SpriteAction_AlphaPulse::Setup(SpriteController* controller, Sprite* sprite) 00026 { 00027 unsigned char sourceAlpha=sprite->GetAlpha(); 00028 currentSource_=((float)sourceAlpha)/255.0f; 00029 currentTarget_=0.0f; 00030 } 00031 00032 00033 //*** Update *** 00034 00035 void SpriteAction_AlphaPulse::Update(SpriteController* controller, Sprite* sprite, float deltaTime) 00036 { 00037 if (currentTarget_<currentSource_) 00038 { 00039 currentSource_-=deltaTime*speed_; 00040 if (currentSource_<=currentTarget_) 00041 { 00042 currentSource_=0.0f; 00043 currentTarget_=1.0f; 00044 } 00045 } 00046 else 00047 { 00048 currentSource_+=deltaTime*speed_; 00049 if (currentSource_>=currentTarget_) 00050 { 00051 currentSource_=1.0f; 00052 currentTarget_=0.0f; 00053 } 00054 } 00055 int alpha=Clamp((int)(currentSource_*255.0f),1,255); 00056 00057 sprite->SetAlpha((char)alpha); 00058 } 00059
Reproduction/republishing of any material on this site without permission is strictly prohibited.
