Files
2026-06-01 12:46:52 +02:00

77 lines
1.6 KiB
C++

#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