hgesprite.h
上传用户:maxiaolivb
上传日期:2022-06-07
资源大小:915k
文件大小:2k
- /*
- ** Haaf's Game Engine 1.5
- ** Copyright (C) 2003-2004, Relish Games
- ** hge.relishgames.com
- **
- ** hgeSprite helper class header
- */
- #ifndef HGESPRITE_H
- #define HGESPRITE_H
- #include "hge.h"
- #include "hgerect.h"
- /*
- ** HGE Sprite class
- */
- class hgeSprite
- {
- public:
- hgeSprite(HTEXTURE tex, float x, float y, float w, float h);
- hgeSprite(const hgeSprite &spr);
- ~hgeSprite() { hge->Release(); }
-
-
- void Render(float x, float y);
- void RenderEx(float x, float y, float rot, float hscale=1.0f, float vscale=0.0f);
- void RenderStretch(float x1, float y1, float x2, float y2);
- void Render4V(float x0, float y0, float x1, float y1, float x2, float y2, float x3, float y3);
- void SetTexture(HTEXTURE tex);
- void SetTextureRect(float x, float y, float w, float h);
- void SetColor(DWORD col, int i=-1);
- void SetZ(float z, int i=-1);
- void SetBlendMode(int blend) { quad.blend=blend; }
- void SetHotSpot(float x, float y) { hotX=x; hotY=y; }
- void SetFlip(bool bX, bool bY);
- HTEXTURE GetTexture() const { return quad.tex; }
- void GetTextureRect(float *x, float *y, float *w, float *h) const { *x=tx; *y=ty; *w=width; *h=height; }
- DWORD GetColor(int i=0) const { return quad.v[i].col; }
- float GetZ(int i=0) const { return quad.v[i].z; }
- int GetBlendMode() const { return quad.blend; }
- void GetHotSpot(float *x, float *y) const { *x=hotX; *y=hotY; }
- void GetFlip(bool *bX, bool *bY) const { *bX=bXFlip; *bY=bYFlip; }
- hgeRect* GetBoundingBox(float x, float y, hgeRect *rect) const { rect->Set(x-hotX, y-hotY, x-hotX+width, y-hotY+height); return rect; }
- hgeRect* GetBoundingBoxEx(float x, float y, float rot, float hscale, float vscale, hgeRect *rect) const;
- float GetWidth() const { return width; }
- float GetHeight() const { return height; }
- protected:
- hgeSprite();
- static HGE *hge;
- hgeQuad quad;
- float tx, ty, width, height;
- float tex_width, tex_height;
- float hotX, hotY;
- bool bXFlip, bYFlip;
- };
- #endif