#pragma once #include "EngineFrame/Base/Node.h" #include "Tool/IntrusiveList.hpp" class Scene; /** * @brief Actor类,继承自Actor_base类 * * Actor类是一个基础的游戏对象类,可以添加到场景中 */ class Actor : public Node { protected: /**裁切视口Flag */ bool _CropViewportFlag = false; /**裁切视口 */ SDL_Rect _CropViewport = {0, 0, 0, 0}; /**混合模式 */ LE_BlEND_MODE _BlendMode = NONE; public: // 初始化 virtual void Init(); // 被添加时 virtual void OnAdded(Actor *node); // 设置混合模式 void SetBlendMode(LE_BlEND_MODE mode); // 获取混合模式 LE_BlEND_MODE GetBlendMode(); public: /**重载渲染函数 */ void Render() override; /**设置裁切视口(放在Actor里 他与他的子对象都会被裁切) */ void SetCropViewport(SDL_Rect CropViewport); /**获取裁切视口 */ SDL_Rect GetCropViewport(); };