SwitchGame/source/EngineFrame/Actor/Actor.h

36 lines
913 B
C
Raw Normal View History

2025-09-15 11:28:54 +08:00
#pragma once
#include "EngineFrame/Actor/Actor_base.h"
#include "EngineFrame/Component/Component.h"
#include "Tool/IntrusiveList.hpp"
class Scene;
/**
* @brief Actor类Actor_base类
*
* Actor类是一个基础的游戏对象类
*/
class Actor : public Actor_base, protected IntrusiveListValue<RefPtr<Actor>>
{
public:
Actor();
~Actor() override;
public:
void Init() override;
void HandleEvents(SDL_Event *e) override;
void Update(float deltaTime) override;
void Render(float deltaTime) override;
void Clear() override;
using IntrusiveListValue<RefPtr<Actor>>::GetNext;
using IntrusiveListValue<RefPtr<Actor>>::GetPrev;
public:
void AddComponent(RefPtr<Component> Component);
public:
Scene *Parent; // 指向父场景的指针表示该Actor所属的场景
private:
IntrusiveList<RefPtr<Component>> m_Components;
};