![]() |
ShitEngine 1.4.2
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
|
#include <System.h>
Public 成员函数 | |
| System (int priority=0) | |
| virtual | ~System () |
| virtual void | init () |
| 初始化(可覆写) | |
| virtual void | update ()=0 |
| 每帧更新(纯虚) | |
| virtual void | fixedUpdate (float) |
| 固定步长驱动(默认空实现,按需覆写):由 Scene 在固定步循环内按优先级顺序调用, 一个渲染帧可能执行 0~N 次(默认 60Hz,见 Scene::FIXED_TIME_STEP)。 与物理同拍/需要稳定帧率的逻辑(施力、设速度、计时器)放这里,而不是 update()。 | |
| virtual void | destroy ()=0 |
| 销毁(纯虚) | |
| virtual void | onFieldChanged (const std::string &fieldName) |
| 反射字段被编辑器直写后回调(供子系统把字段变更实时同步到运行时状态) | |
| 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>() 注册到场景。
WhiteList 模式:无启用字段,仅提供反射基类链锚点 (子类可 SHIT_REFLECT 暴露字段,使编辑器可编辑系统属性)。
| System | ( | int | priority = 0 | ) |
|
virtual |
|
pure virtual |
销毁(纯虚)
在 BehaviorSystem, PhysicsSystem2D, RenderSystem , 以及 UIRenderSystem 内被实现.
|
inlinevirtual |
固定步长驱动(默认空实现,按需覆写):由 Scene 在固定步循环内按优先级顺序调用, 一个渲染帧可能执行 0~N 次(默认 60Hz,见 Scene::FIXED_TIME_STEP)。 与物理同拍/需要稳定帧率的逻辑(施力、设速度、计时器)放这里,而不是 update()。
被 BehaviorSystem , 以及 PhysicsSystem2D 重载.
|
inline |
|
inline |
|
virtual |
初始化(可覆写)
被 PhysicsSystem2D 重载.
|
inlinevirtual |
组件挂载时调用。返回 true 表示本系统认领并处理了该组件(组件据此确定已注册)。
被 BehaviorSystem, PhysicsSystem2D, RenderSystem , 以及 UIRenderSystem 重载.
|
inlinevirtual |
组件卸下时调用。
被 BehaviorSystem, PhysicsSystem2D, RenderSystem , 以及 UIRenderSystem 重载.
|
inlinevirtual |
反射字段被编辑器直写后回调(供子系统把字段变更实时同步到运行时状态)
被 PhysicsSystem2D 重载.
|
protected |
内部:把认领过的组件标记为未注册(系统销毁/注销时调用)。 否则组件 m_isRegistered 残留 true,同类系统重新注册时 System::init 补扫会跳过它们, 导致组件永久失去驱动系统。
|
inline |
|
inline |
|
pure virtual |
每帧更新(纯虚)
在 BehaviorSystem, PhysicsSystem2D, RenderSystem , 以及 UIRenderSystem 内被实现.
|
protected |
优先级(小值先执行)
|
protected |
所属场景