00001 00002 00003 #ifndef VALUEFADER_H 00004 #define VALUEFADER_H 00005 00006 00007 namespace pge { 00008 00009 00010 class ValueFader { 00011 00012 00013 public: 00014 //************************************************************************ 00015 // 00016 // Constructor 00017 // 00018 //************************************************************************ 00020 ValueFader(float min, float max) { 00021 m_value = min; 00022 m_valuePlus = true; 00023 m_min = min; 00024 m_max = max; 00025 m_change = 0.05f; 00026 } 00027 00028 00029 //************************************************************************ 00030 // 00031 // Destructor 00032 // 00033 //************************************************************************ 00035 virtual ~ValueFader(void) { 00036 } 00037 00038 00039 //************************************************************************ 00040 // 00041 // Functions 00042 // 00043 //************************************************************************ 00044 float getValue(void) { 00045 return m_value; 00046 } 00047 00048 00049 void setValue(float value) { 00050 m_value = value; 00051 } 00052 00053 00054 void update(void) { 00055 if(m_valuePlus) { 00056 m_value += m_change; 00057 } else { 00058 m_value -= m_change; 00059 } 00060 if(m_value >= m_max) { 00061 m_valuePlus = false; 00062 } 00063 if(m_value <= m_min) { 00064 m_valuePlus = true; 00065 } 00066 } 00067 00068 00069 float getChange(void) { 00070 return m_change; 00071 } 00072 00073 00074 void setChange(float change) { 00075 m_change = change; 00076 } 00077 00078 00079 float getMax(void) { 00080 return m_max; 00081 } 00082 00083 00084 void setMax(float max) { 00085 m_max = max; 00086 } 00087 00088 00089 float getMin(void) { 00090 return m_min; 00091 } 00092 00093 00094 void setMin(float min) { 00095 m_min = min; 00096 } 00097 00098 00099 private: 00100 //************************************************************************ 00101 // 00102 // Functions 00103 // 00104 //************************************************************************ 00105 00106 00107 //************************************************************************ 00108 // 00109 // Variables 00110 // 00111 //************************************************************************ 00112 float m_value; 00113 bool m_valuePlus; 00114 float m_min; 00115 float m_max; 00116 float m_change; 00117 00118 }; 00119 }; 00120 00121 #endif