#pragma once #include #include "Asset/Asset_ImagePack.h" #include "EngineFrame/Component/RenderBase.h" #include "EngineFrame/Render/Texture.h" class Game; /** * @brief Sprite类,继承自Component类,用于表示游戏中的精灵组件 */ class Sprite : public RenderBase { protected: RefPtr m_texture = nullptr; public: Sprite() = default; Sprite(std::string imgPath, int Index); Sprite(std::string PngPath); ~Sprite(); void Render() override; void PreRender() override; void Clear() override; void Init() override; void SetTexture(RefPtr texture); RefPtr GetTexture(); public: // 渲染信息 RenderGuidanceInfo _RenderGuidanceInfo; std::string imgPath; int Index; Matrix3x2 transform_matrix_; GlMatrix matrix3x2ToGLMatrix(const Matrix3x2 &mat); public: // 计算渲染信息 void CalcRenderInfoLogic(); // 混合 void Blend(); };