#include "Actor.h" #include "EngineFrame/Scene/Scene.h" #include "EngineCore/Game.h" #include "EngineFrame/Component/RenderBase.h" #include "EngineFrame/Render/RenderManager.h" #include Actor::Actor() { Init(); } void Actor::Init() { addTag(Tag::ACTOR); addTag(Tag::RENDER); addTag(Tag::TRANSFORM); addTag(Tag::UPDATE); } void Actor::Update(float deltaTime) { if (!Visible) return; BaseNode::Update(deltaTime); } void Actor::Render() { if (!Visible) return; // 如果有裁切视口 if (this->_CropViewportFlag) { RenderManager *renderer = Game::GetInstance().GetRenderer(); renderer->SetClipRect(&this->_CropViewport); BaseNode::Render(); renderer->CloseClipRect(); } else { BaseNode::Render(); } } void Actor::SetCropViewport(SDL_Rect CropViewport) { if (CropViewport.x == 0 && CropViewport.y == 0 && CropViewport.w == 0 && CropViewport.h == 0) { this->_CropViewportFlag = false; } else { this->_CropViewportFlag = true; this->_CropViewport = CropViewport; } } SDL_Rect Actor::GetCropViewport() { return this->_CropViewport; }