Files
Frostbite2D/Frostbite2D/include/frostbite2D/scene/scene.h
Lenheart b35ecb197f feat(场景管理): 实现场景管理系统及基础2D角色框架
添加场景管理器(SceneManager)和场景(Scene)类,用于管理游戏场景的压入、弹出和切换
实现基础2D角色(Actor)类,支持父子关系和场景管理
添加侵入式链表(IntrusiveList)工具类,用于高效管理场景中的角色对象
在应用主循环中集成场景更新和渲染逻辑
2026-03-17 15:11:31 +08:00

41 lines
714 B
C++

#pragma once
#include <frostbite2D/base/RefObject.h>
#include <frostbite2D/types/type_alias.h>
#include <frostbite2D/utils/intrusive_list.hpp>
#include <frostbite2D/2d/actor.h>
#include <vector>
namespace frostbite2D {
using ActorList = IntrusiveList<RefPtr<Actor>>;
class Scene : public RefObject {
public:
Scene();
virtual ~Scene();
virtual void onEnter();
virtual void onExit();
void Update(float deltaTime);
void Render();
void AddActor(RefPtr<Actor> actor);
void RemoveActor(RefPtr<Actor> actor);
void RemoveAllActors();
protected:
void UpdateActors(float deltaTime);
void RenderActors();
private:
ActorList actors_;
friend class Actor;
friend class SceneManager;
};
}