c++ - BTSK 顶部的 C++ 行为树代码表示 Behavior() : m_eStatus(BH_INVALID) {} 是什么意思?
问题描述
我是 C++ 编程新手,一直在研究 Behavior Tree Starter Kit 以构建新的 AI 框架。我很难理解行为树入门工具包代码。鉴于此用于游戏 AI 行为树的 C++ 代码,顶部的代码部分(似乎正在设置初始状态或其他内容)是什么意思?什么是虚拟作品?
Behavior()
: m_eStatus(BH_INVALID)
{
}
virtual ~Behavior()
{
}
这是完整的代码,也是什么virtual Status update() = 0;
意思:
class Behavior
/**
* Base class for actions, conditions and composites.
*/
{
public:
virtual Status update() = 0;
virtual void onInitialize() {}
virtual void onTerminate(Status) {}
Behavior()
: m_eStatus(BH_INVALID)
{
}
virtual ~Behavior()
{
}
Status tick()
{
if (m_eStatus != BH_RUNNING)
{
onInitialize();
}
m_eStatus = update();
if (m_eStatus != BH_RUNNING)
{
onTerminate(m_eStatus);
}
return m_eStatus;
}
void reset()
{
m_eStatus = BH_INVALID;
}
void abort()
{
onTerminate(BH_ABORTED);
m_eStatus = BH_ABORTED;
}
bool isTerminated() const
{
return m_eStatus == BH_SUCCESS || m_eStatus == BH_FAILURE;
}
bool isRunning() const
{
return m_eStatus == BH_RUNNING;
}
Status getStatus() const
{
return m_eStatus;
}
private:
Status m_eStatus;
};
解决方案
推荐阅读
- javascript - 从数组中按值从对象中获取值
- java - 生成带有图像的 Excel 工作表
- javascript - PWA beforeinstallprompt 未调用
- sql - 我们能否实现 SSRS 中的行级安全性?
- java - RecyclerView 不更新他的项目的布局
- max - MDX 从切片器元素获取最小最大日期
- python - 如何与 kafka/pykafka 平衡消费者合作?
- sql - ORACLE SQL - 如何找到上一个辞职日期和加入日期之间的间隔?
- python - 在 Pandas 中调用 read_csv 后无法重用输入流
- firebase-authentication - 自定义参数 HL 代表什么?