📄 rendersprite.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 + -