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

游戏引擎

开发平台:

Visual C++

  1. /*
  2. ** Haaf's Game Engine 1.7
  3. ** Copyright (C) 2003-2007, Relish Games
  4. ** hge.relishgames.com
  5. **
  6. ** hgeSprite helper class header
  7. */
  8. #ifndef HGESPRITE_H
  9. #define HGESPRITE_H
  10. #include "hge.h"
  11. #include "hgerect.h"
  12. /*
  13. ** HGE Sprite class
  14. */
  15. class hgeSprite
  16. {
  17. public:
  18. hgeSprite(HTEXTURE tex, float x, float y, float w, float h);
  19. hgeSprite(const hgeSprite &spr);
  20. ~hgeSprite() { hge->Release(); }
  21. void Render(float x, float y);
  22. void RenderEx(float x, float y, float rot, float hscale=1.0f, float vscale=0.0f);
  23. void RenderStretch(float x1, float y1, float x2, float y2);
  24. void Render4V(float x0, float y0, float x1, float y1, float x2, float y2, float x3, float y3);
  25. void SetTexture(HTEXTURE tex);
  26. void SetTextureRect(float x, float y, float w, float h, bool adjSize = true);
  27. void SetColor(DWORD col, int i=-1);
  28. void SetZ(float z, int i=-1);
  29. void SetBlendMode(int blend) { quad.blend=blend; }
  30. void SetHotSpot(float x, float y) { hotX=x; hotY=y; }
  31. void SetFlip(bool bX, bool bY, bool bHotSpot = false);
  32. HTEXTURE GetTexture() const { return quad.tex; }
  33. void GetTextureRect(float *x, float *y, float *w, float *h) const { *x=tx; *y=ty; *w=width; *h=height; }
  34. DWORD GetColor(int i=0) const { return quad.v[i].col; }
  35. float GetZ(int i=0) const { return quad.v[i].z; }
  36. int GetBlendMode() const { return quad.blend; }
  37. void GetHotSpot(float *x, float *y) const { *x=hotX; *y=hotY; }
  38. void GetFlip(bool *bX, bool *bY) const { *bX=bXFlip; *bY=bYFlip; }
  39. float GetWidth() const { return width; }
  40. float GetHeight() const { return height; }
  41. hgeRect* GetBoundingBox(float x, float y, hgeRect *rect) const { rect->Set(x-hotX, y-hotY, x-hotX+width, y-hotY+height); return rect; }
  42. hgeRect* GetBoundingBoxEx(float x, float y, float rot, float hscale, float vscale,  hgeRect *rect) const;
  43. protected:
  44. hgeSprite();
  45. static HGE *hge;
  46. hgeQuad quad;
  47. float tx, ty, width, height;
  48. float tex_width, tex_height;
  49. float hotX, hotY;
  50. bool bXFlip, bYFlip, bHSFlip;
  51. };
  52. #endif