36 lines
913 B
C++
36 lines
913 B
C++
#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;
|
||
};
|