From c91847d549cc1c30eb15504a15ea9a6d5aa48165 Mon Sep 17 00:00:00 2001 From: "chirs241097@gmail.com" Date: Sun, 12 Jan 2014 14:43:14 +0000 Subject: --- include/hgesprite.h | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 include/hgesprite.h (limited to 'include/hgesprite.h') diff --git a/include/hgesprite.h b/include/hgesprite.h new file mode 100644 index 0000000..e414c02 --- /dev/null +++ b/include/hgesprite.h @@ -0,0 +1,67 @@ +/* +** Haaf's Game Engine 1.7 +** Copyright (C) 2003-2007, 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, bool adjSize = true); + 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, bool bHotSpot = false); + + 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; } + + float GetWidth() const { return width; } + float GetHeight() const { return height; } + 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; + +protected: + hgeSprite(); + static HGE *hge; + + hgeQuad quad; + float tx, ty, width, height; + float tex_width, tex_height; + float hotX, hotY; + bool bXFlip, bYFlip, bHSFlip; +}; + + +#endif -- cgit v1.2.3