⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rendersprite.h

📁 HGE 2D游戏引擎制作的一个演示
💻 H
字号:
/**********************************************
					图片精灵类
**********************************************/
#pragma once
#include "baseobject.h"
#include "GUIDefine.h"

class RenderSprite :
	public BaseObject
{
public:
	RenderSprite(CORE* pCORE,HTEXTURE tex, float x, float y, float w, float h);
	RenderSprite(const RenderSprite &spr);
	~RenderSprite(void){};
	CORE*		m_pCORE;

protected:
	st_Quad	m_Quad;																		///绘制矩形
	float		m_fTx;																		///从纹理剪裁坐标X
	float		m_fTy;																		///从纹理剪裁坐标X
	float		m_fWidth;																	///从纹理剪裁宽度
	float		m_fHeight;																	///从纹理剪裁高度
	float		m_fTexWidth;																///纹理宽度
	float		m_fTexHeight;																///纹理高度
	float		m_fHotX;																	///热点X
	float		m_fHotY;																	///热点Y
	bool		m_bXFlip;																	///是否X翻转
	bool		m_bYFlip;																	///是否Y翻转

public:
	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		SetAlpha(BYTE a);															///设置精灵渲染时的alpha
	void		SetColor(DWORD col, int i=-1);												///设置精灵渲染时的颜色
	void		SetZ(float z, int i=-1);													///设置精灵的Z缓冲
	void		SetBlendMode(int blend);													///设置精灵的混合模式
	void		SetHotSpot(float x, float y);												///设置精灵的重心,旋转中心
	void		SetFlip(bool bX, bool bY);													///设置精灵的翻转相对轴

	HTEXTURE	GetTexture() const;
	void		GetTextureRect(float *x, float *y, float *w, float *h) const;
	DWORD		GetColor(int i=0) const;
	float		GetZ(int i=0) const;
	int			GetBlendMode() const;
	void		GetHotSpot(float *x, float *y) const;
	void		GetFlip(bool *bX, bool *bY) const;
	float		GetWidth() const;
	float		GetHeight() const;

	DWORD		GetTextureColor(float x,float y);

	GUIRect*	GetBoundingBox(float x, float y, GUIRect *rect) const;						///返回范围框。
	GUIRect*	GetBoundingBoxEx(float x, float y, float rot, float hscale, float vscale,  GUIRect *rect) const;///返回等比缩放和旋转的范围框。
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -