- 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++和系统方面,其它都是概念性的东西了。
原文链接: https://www.cnblogs.com/kupig/archive/2011/10/27/2226196.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/35194
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!