easyx_framework V1.0.0
基于easyx的c++游戏框架
 
载入中...
搜索中...
未找到
FSMItems类 参考

状态基类. 更多...

#include <FSM.h>

类 FSMItems 继承关系图:
idlestatus standstatus walkstatus whitestatus

Public 成员函数

 FSMItems (int _status, FSMItems *_parent=nullptr, int _level=0)
 构造函数.
 
 ~FSMItems ()
 析构函数.
 
void AttachTo (FSMItems *par)
 设置父节点.
 
void DetachForm (FSMItems *par)
 解除绑定.
 
void Destory ()
 删除节点状态.
 
int newchildstatus ()
 获取还没有的子节点状态值.
 
int GetStatus () const
 获取状态值.
 

Public 属性

FSMfsm = nullptr
 绑定的状态机
 
Animatorani = nullptr
 同物体的动画组件
 
Collidercol = nullptr
 同物体的碰撞组件
 
action act
 执行事件(每帧执行) 一般用户重写新节点就是添加事件
 
action enter
 进入事件 一般用户重写新节点就是添加事件
 
action exit
 退出事件 一般用户重写新节点就是添加事件
 

Protected 属性

int level
 根深度
 
int status
 状态值
 
std::set< FSMItems *, StatusSortchildren
 孩子状态容器
 
FSMItemsparent =nullptr
 父节点状态
 

友元

class FSM
 

详细描述

状态基类.

备注
基本逻辑:
一颗树存储所有状态, 同一层级的节点可以转换的, 节点有自己的事件
!!!想要使用就要重写自己的状态

构造及析构函数说明

◆ FSMItems()

FSMItems::FSMItems ( int _status,
FSMItems * _parent = nullptr,
int _level = 0 )
inline

构造函数.

备注
一般都不用用户管理 可选父节点
参见
FSM::AddStatus
参数
[in]_status状态值
[in]_parent父节点
[in]_level节点深度,

◆ ~FSMItems()

FSMItems::~FSMItems ( )
inline

析构函数.

节点删除基本由状态机管理

成员函数说明

◆ AttachTo()

void FSMItems::AttachTo ( FSMItems * par)
inline

设置父节点.

绑定 并设置新状态值

参数
[in]par父节点

◆ Destory()

void FSMItems::Destory ( )

删除节点状态.

节点删除之后子节点独立出现森林

备注
建议想复用删除前就绑定到其他节点上,否则状态机默认删除所有子节点
状态机最好只是一棵树,多个状态机可以是森林

◆ DetachForm()

void FSMItems::DetachForm ( FSMItems * par)
inline

解除绑定.

备注
不建议用户使用
参数
[in]par父节点

◆ GetStatus()

int FSMItems::GetStatus ( ) const
inline

获取状态值.

返回
状态值

◆ newchildstatus()

int FSMItems::newchildstatus ( )
inline

获取还没有的子节点状态值.

返回
下一个子节点状态值

友元及相关符号说明

◆ FSM

friend class FSM
friend

类成员变量说明

◆ act

action FSMItems::act

执行事件(每帧执行) 一般用户重写新节点就是添加事件

◆ ani

Animator* FSMItems::ani = nullptr

同物体的动画组件

◆ children

std::set< FSMItems*,StatusSort> FSMItems::children
protected

孩子状态容器

◆ col

Collider* FSMItems::col = nullptr

同物体的碰撞组件

◆ enter

action FSMItems::enter

进入事件 一般用户重写新节点就是添加事件

◆ exit

action FSMItems::exit

退出事件 一般用户重写新节点就是添加事件

◆ fsm

FSM* FSMItems::fsm = nullptr

绑定的状态机

◆ level

int FSMItems::level
protected

根深度

◆ parent

FSMItems* FSMItems::parent =nullptr
protected

父节点状态

◆ status

int FSMItems::status
protected

状态值