www.pudn.com > HGE_game_damo.rar > hgesprite.h


/* 
** 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