hgefont.h
上传用户:maxiaolivb
上传日期:2022-06-07
资源大小:915k
文件大小:2k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. /*
  2. ** Haaf's Game Engine 1.5
  3. ** Copyright (C) 2003-2004, Relish Games
  4. ** hge.relishgames.com
  5. **
  6. ** hgeFont helper class header
  7. */
  8. #ifndef HGEFONT_H
  9. #define HGEFONT_H
  10. #include "hge.h"
  11. #include "hgesprite.h"
  12. #define HGETEXT_LEFT 0
  13. #define HGETEXT_RIGHT 1
  14. #define HGETEXT_CENTER 2
  15. #define HGETEXT_HORZMASK 0x03
  16. #define HGETEXT_TOP 0
  17. #define HGETEXT_BOTTOM 4
  18. #define HGETEXT_MIDDLE 8
  19. #define HGETEXT_VERTMASK 0x0C
  20. /*
  21. ** HGE Font class
  22. */
  23. class hgeFont
  24. {
  25. public:
  26. hgeFont(const char *filename);
  27. hgeFont(const hgeFont &fnt);
  28. ~hgeFont();
  29. hgeFont& operator= (const hgeFont &fnt);
  30. void Render(float x, float y, int align, const char *string);
  31. void printf(float x, float y, int align, const char *format, ...);
  32. void printfb(float x, float y, float w, float h, int align, const char *format, ...);
  33. void SetColor(DWORD col);
  34. void SetZ(float z);
  35. void SetBlendMode(int blend);
  36. void SetScale(float scale) {fScale=scale;}
  37. void SetRotation(float rot) {fRot=rot;}
  38. void SetTracking(float tracking) {fTracking=tracking;}
  39. void SetSpacing(float spacing) {fSpacing=spacing;}
  40. DWORD GetColor() const {return dwCol;}
  41. float GetZ() const {return fZ;}
  42. int GetBlendMode() const {return nBlend;}
  43. float GetScale() const {return fScale;}
  44. float GetRotation() const {return fRot;}
  45. float GetTracking() const {return fTracking;}
  46. float GetSpacing() const {return fSpacing;}
  47. hgeSprite* GetSprite(char chr) const { return letters[(unsigned char)chr]; }
  48. float GetHeight() const { return fHeight; }
  49. float GetStringWidth(const char *string) const;
  50. private:
  51. hgeFont();
  52. char* _get_line(char *file, char *line);
  53. static HGE *hge;
  54. char buffer[1024];
  55. HTEXTURE hTexture;
  56. hgeSprite* letters[256];
  57. float pre[256];
  58. float post[256];
  59. float fHeight;
  60. float fScale;
  61. float fRot;
  62. float fTracking;
  63. float fSpacing;
  64. DWORD dwCol;
  65. float fZ;
  66. int nBlend;
  67. };
  68. #endif