|
ShitEngine
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
|
#include <System.h>
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) |
| 组件卸下时调用。 | |
| Scene * | getScene () 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 |
| 优先级(小值先执行) | |
| Scene * | m_scene = nullptr |
| 所属场景 | |
System 基类
所有自定义系统必须继承此类并实现 update() 与 destroy()。 系统按 priority 值排序,小值先执行。 通过 Scene::registerSystem<T>() 注册到场景。
| System | ( | int | priority = 0 | ) |
|
virtual |
|
pure virtual |
销毁(纯虚)
在 BehaviorSystem, PhysicsSystem2D, RenderSystem , 以及 UIRenderSystem 内被实现.
|
inline |
|
inline |
|
virtual |
初始化(可覆写)
被 PhysicsSystem2D 重载.
|
inlinevirtual |
组件挂载时调用。返回 true 表示本系统认领并处理了该组件(组件据此确定已注册)。
被 BehaviorSystem, PhysicsSystem2D, RenderSystem , 以及 UIRenderSystem 重载.
|
inlinevirtual |
组件卸下时调用。
被 BehaviorSystem, PhysicsSystem2D, RenderSystem , 以及 UIRenderSystem 重载.
|
protected |
内部:把认领过的组件标记为未注册(系统销毁/注销时调用)。 否则组件 m_isRegistered 残留 true,同类系统重新注册时 System::init 补扫会跳过它们, 导致组件永久失去驱动系统。
|
inline |
|
inline |
|
pure virtual |
每帧更新(纯虚)
在 BehaviorSystem, PhysicsSystem2D, RenderSystem , 以及 UIRenderSystem 内被实现.
|
protected |
优先级(小值先执行)
|
protected |
所属场景