#ifdef _COUNTRY_ME_ #pragma once #include "KPrimitiveSprite.h" //#include "KUIControl.h" class KUIControlEffectText : public KUIControl { public: enum EFFECT_TYPE { EFFECT_BAD = 0, EFFECT_GOOD, TOTAL_EFFECT_COUNT, }; public: KUIControlEffectText(); ~KUIControlEffectText(); virtual void Process(DWORD time); virtual void OnPosChangeNofity(int XOffset, int YOffset); virtual void OnAlphaChangeNotify(float fAlpha); const KRect& GetRealRect() const { return m_realRect; } void AddDownOffset(int count); void OnCollision(); void SetEffectInfo(LPCSTR name, KUIControlEffectText::EFFECT_TYPE type, bool scaleDown); int GetState() { return m_state; } int GetCollisionState() { return m_collisionState;} private: void _ChangeCurAlpha(float fAlpha); void _CalDownOffset(DWORD csTimeDiff); private: int m_state; int m_collisionState; int m_downOffest; int m_remainDownOffest; DWORD m_curTime; DWORD m_effectStartTime; DWORD m_collisionEffectStartTime; KRect m_realRect; KSpritePrimitive m_Back; KSpritePrimitive m_BackLine; bool m_scaleDown; float m_curPrimitiveAlpha; float m_curCaptionAlpha; DWORD m_captionWidth; DWORD m_backWidth; }; class KUIControlEffectTextGroup : public KUIControl { public: virtual void Process(DWORD dwTime); #ifdef _KUI_INVALIDATION KUIControl* AddEffectControl(KUIWnd* pParent, LPCSTR name, KUIControlEffectText::EFFECT_TYPE type, bool scaleDown = false); #else void AddEffectControl(LPCSTR name, KUIControlEffectText::EFFECT_TYPE type, bool scaleDown = false); #endif }; #endif