我是 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;
};