CbuttonFont.cpp
上传用户:jalin138
上传日期:2022-02-12
资源大小:5720k
文件大小:1k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. #include "CbuttonFont.h"
  2. CbuttonFont::CbuttonFont(wchar_t *_Name, int size)
  3. {
  4. m_pFont = new GfxFont( "黑体", size);
  5. m_pFont->SetColor( 0xffbf14fe );
  6. m_sName = _Name;
  7. m_pSprite = new hgeSprite(NULL, 0, 0, 0 ,0 );   
  8. m_fWidth = (float)(m_pFont->GetTextSize(_Name).cx);
  9. m_fHeight = (float)(m_pFont->GetTextSize(_Name).cy); 
  10. }
  11. CbuttonFont::~CbuttonFont(void)
  12. {
  13. m_sName = NULL;
  14. SAFE_DELETE( m_pFont );
  15. SAFE_DELETE( m_pSprite );
  16. }
  17. bool CbuttonFont::Logic(float _x, float _y)
  18. {
  19. m_fX = _x;
  20. m_fY = _y;
  21. m_Rect.x1 = _x;
  22. m_Rect.y1 = _y;
  23. m_Rect.x2 = _x + m_fWidth;
  24. m_Rect.y2 = _y + m_fHeight;
  25. if ( g_Hge->Input_IsMouseOver() )
  26. {
  27. float mt_mouseX = 0.0f, mt_mouseY = 0.0f;
  28. g_Hge->Input_GetMousePos( &mt_mouseX, &mt_mouseY );
  29. if ( m_Rect.TestPoint(mt_mouseX, mt_mouseY) )
  30. {
  31. m_bIn = true;
  32. if ( g_Hge->Input_KeyUp(HGEK_LBUTTON) )
  33. return true;
  34. return false;
  35. }
  36. m_bIn = false;
  37. }
  38. return false;
  39. }
  40. void CbuttonFont::Render(void)
  41. {
  42. if ( m_bIn )
  43. {
  44. m_pSprite->SetColor( 0xff4cdff0 );
  45. m_pSprite->RenderStretch(m_Rect.x1, m_Rect.y1,
  46. m_Rect.x2, m_Rect.y2 );
  47. }
  48. m_pFont->Render( m_fX, m_fY, m_sName );
  49. }