ShitEngine
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
载入中...
搜索中...
未找到
BehaviorSystem.h
浏览该文件的文档.
1#pragma once
2#include "System.h"
3
4namespace Shit {
5 class Behavior;
6
13 class SHIT_API BehaviorSystem final : public System {
14 public:
15 BehaviorSystem(int priority = 0);
16 ~BehaviorSystem() override;
17
18 void update() override;
19 void destroy() override;
20
21 // 组件认领:Behavior 及其子类(如 AnimationComponent)
22 bool onComponentAttached(Component* component) override;
23 void onComponentDetached(Component* component) override;
24
25 void registerBehavior(Behavior *behavior);
26 void unregisterBehavior(Behavior *behavior);
27
28 private:
29 std::vector<Behavior*> m_behaviors;
30 std::vector<Behavior*> m_pendingBehaviors;
31 };
32}
#define SHIT_API
定义 Core.h:14
行为基类 —— 用于编写自定义游戏逻辑
定义 Behavior.h:18
void update() override
每帧更新(纯虚)
BehaviorSystem(int priority=0)
bool onComponentAttached(Component *component) override
组件挂载时调用。返回 true 表示本系统认领并处理了该组件(组件据此确定已注册)。
void onComponentDetached(Component *component) override
组件卸下时调用。
void unregisterBehavior(Behavior *behavior)
注销 Behavior(onDetach 时自动调用)
~BehaviorSystem() override
void registerBehavior(Behavior *behavior)
注册 Behavior(onAttach 时自动调用)
void destroy() override
销毁(纯虚)
组件基类
定义 Component.h:20
System(int priority=0)
定义 AudioPlayer.h:10