ShitEngine
1.4.2
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
Toggle main menu visibility
载入中...
搜索中...
未找到
BehaviorSystem.h
浏览该文件的文档.
1
#pragma once
2
#include "
System.h
"
3
#include "
ShitEngine/Reflection/Macros.h
"
4
5
namespace
Shit
{
6
class
Behavior
;
7
14
class
SHIT_API
SHIT_REFLECT
(WhiteList)
BehaviorSystem
final :
public
System
{
15
SHIT_REFLECT_BODY
(
BehaviorSystem
)
16
public
:
17
BehaviorSystem
(
int
priority = 0);
18
~BehaviorSystem
()
override
;
19
20
void
update
()
override
;
22
void
fixedUpdate
(
float
fixedDt)
override
;
23
void
destroy
()
override
;
24
25
// 组件认领:Behavior 及其子类(如 AnimationComponent)
26
bool
onComponentAttached
(
Component
* component)
override
;
27
void
onComponentDetached
(
Component
* component)
override
;
28
29
void
registerBehavior
(
Behavior
*behavior);
30
void
unregisterBehavior
(
Behavior
*behavior);
31
34
void
resetAllBehaviors
();
35
36
private
:
37
std::vector<Behavior*> m_behaviors;
38
std::vector<Behavior*> m_pendingBehaviors;
39
41
void
flushPendingBehaviors();
43
void
compactTombstones();
44
};
45
}
SHIT_API
#define SHIT_API
定义
Core.h:14
Macros.h
反射标记宏(annotate 方案)——引擎反射系统的源码侧入口
SHIT_REFLECT_BODY
#define SHIT_REFLECT_BODY(Type)
定义
Macros.h:89
SHIT_REFLECT
#define SHIT_REFLECT(Mode)
定义
Macros.h:86
System.h
Shit::Behavior
行为基类 —— 用于编写自定义游戏逻辑
定义
Behavior.h:22
Shit::BehaviorSystem::update
void update() override
每帧更新(纯虚)
Shit::BehaviorSystem::fixedUpdate
void fixedUpdate(float fixedDt) override
固定步阶段(Scene 固定步循环节拍调用):补跑 onStart 后驱动 onFixedUpdate(fixedDt)
Shit::BehaviorSystem::BehaviorSystem
BehaviorSystem(int priority=0)
Shit::BehaviorSystem::onComponentAttached
bool onComponentAttached(Component *component) override
组件挂载时调用。返回 true 表示本系统认领并处理了该组件(组件据此确定已注册)。
Shit::BehaviorSystem::onComponentDetached
void onComponentDetached(Component *component) override
组件卸下时调用。
Shit::BehaviorSystem::unregisterBehavior
void unregisterBehavior(Behavior *behavior)
注销 Behavior(onDetach 时自动调用)
Shit::BehaviorSystem::~BehaviorSystem
~BehaviorSystem() override
Shit::BehaviorSystem::resetAllBehaviors
void resetAllBehaviors()
重置全部 Behavior 的启动标志(isStarted=false)——进入运行态时调用, 使 onStart 在运行第一帧重新执行(Unity 式「每次运行从头开始」)。
Shit::BehaviorSystem::registerBehavior
void registerBehavior(Behavior *behavior)
注册 Behavior(onAttach 时自动调用)
Shit::BehaviorSystem::destroy
void destroy() override
销毁(纯虚)
Shit::Component
组件基类
定义
Component.h:25
Shit::System::System
System(int priority=0)
Shit
定义
AnimationClip.h:12
include
ShitEngine
System
BehaviorSystem.h
制作者
1.17.0