您的位置:首页 > 大数据 > 人工智能

游戏AI简单实现

2011-10-27 10:57 423 查看
现在游戏中,大多都使用有限状态机。也是设计模式之一。就是通过一个状态基类,根据基类指针执行不同状态。

下面给出简单的代码,大体上就这样。

Code:

class State

{

public:

virtual void Execute(Troll* troll);

};

class Troll// 巨魔类

{

State* m_pCurrentState;

public :

void Update()

{

m_pCurrentState->Execute(this);

}

void ChangeState(const State* pNewState)

{

delete m_pCurrentState;

m_pCurrentState = pNewState;

}

};

class State_RunAway:public State//逃跑(当前状态的逻辑为逃跑)

{

public :

void Execute(Troll* troll)

{

if(troll->isSafe())

{

troll->ChangeState(new State_Sleep);

}

else

{

troll->MoveAwayFromEnemy();

}

}

};

class State_Sleep: public State//睡觉(当前状态的逻辑为睡觉)

{

public :

void Execute(Troll* troll)

{

if(troll->isThreatened())

{

troll->ChangeState(new State_RunAway);

}

else

{

troll->Snore();

}

}

};

心得:现在感觉设计真的很重要。用好C++和系统方面,其它都是概念性的东西了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: