ShitEngine
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
载入中...
搜索中...
未找到
System类 参考abstract

System 基类 更多...

#include <System.h>

类 System 继承关系图:
BehaviorSystem PhysicsSystem2D RenderSystem UIRenderSystem

Public 成员函数

 System (int priority=0)
virtual ~System ()
virtual void init ()
 初始化(可覆写)
virtual void update ()=0
 每帧更新(纯虚)
virtual void destroy ()=0
 销毁(纯虚)
virtual bool onComponentAttached (Component *component)
 组件挂载时调用。返回 true 表示本系统认领并处理了该组件(组件据此确定已注册)。
virtual void onComponentDetached (Component *component)
 组件卸下时调用。
ScenegetScene () const
void setScene (Scene *scene)
int getPriority () const
void setPriority (int priority)

Protected 成员函数

void resetComponent (Component *comp)
 内部:把认领过的组件标记为未注册(系统销毁/注销时调用)。 否则组件 m_isRegistered 残留 true,同类系统重新注册时 System::init 补扫会跳过它们, 导致组件永久失去驱动系统。

Protected 属性

int m_priority
 优先级(小值先执行)
Scenem_scene = nullptr
 所属场景

详细描述

System 基类

所有自定义系统必须继承此类并实现 update()destroy()。 系统按 priority 值排序,小值先执行。 通过 Scene::registerSystem<T>() 注册到场景。

构造及析构函数说明

◆ System()

System ( int priority = 0)

◆ ~System()

virtual ~System ( )
virtual

成员函数说明

◆ destroy()

virtual void destroy ( )
pure virtual

销毁(纯虚)

BehaviorSystem, PhysicsSystem2D, RenderSystem , 以及 UIRenderSystem 内被实现.

◆ getPriority()

int getPriority ( ) const
inline

◆ getScene()

Scene * getScene ( ) const
inline

◆ init()

virtual void init ( )
virtual

初始化(可覆写)

PhysicsSystem2D 重载.

◆ onComponentAttached()

virtual bool onComponentAttached ( Component * component)
inlinevirtual

组件挂载时调用。返回 true 表示本系统认领并处理了该组件(组件据此确定已注册)。

BehaviorSystem, PhysicsSystem2D, RenderSystem , 以及 UIRenderSystem 重载.

◆ onComponentDetached()

virtual void onComponentDetached ( Component * component)
inlinevirtual

组件卸下时调用。

BehaviorSystem, PhysicsSystem2D, RenderSystem , 以及 UIRenderSystem 重载.

◆ resetComponent()

void resetComponent ( Component * comp)
protected

内部:把认领过的组件标记为未注册(系统销毁/注销时调用)。 否则组件 m_isRegistered 残留 true,同类系统重新注册时 System::init 补扫会跳过它们, 导致组件永久失去驱动系统。

◆ setPriority()

void setPriority ( int priority)
inline

◆ setScene()

void setScene ( Scene * scene)
inline

◆ update()

virtual void update ( )
pure virtual

每帧更新(纯虚)

BehaviorSystem, PhysicsSystem2D, RenderSystem , 以及 UIRenderSystem 内被实现.

类成员变量说明

◆ m_priority

int m_priority
protected

优先级(小值先执行)

◆ m_scene

Scene* m_scene = nullptr
protected

所属场景


该类的文档由以下文件生成: