?? fsm.h
字號(hào):
// FSM.h: interface for the CFSM class.
//
// 本程序是《瘋狂的火星蟲(chóng)—面向?qū)ο鬆顟B(tài)機(jī)實(shí)踐指南》的演示程序
//
// 版權(quán)所有 (C) 2004 王詠武
// http://www.contextfree.net/wangyw/
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_FSM_H__336B4996_DF5B_4CFE_BBF4_9D771F19CB23__INCLUDED_)
#define AFX_FSM_H__336B4996_DF5B_4CFE_BBF4_9D771F19CB23__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <vector>
#include "State.h"
using namespace std;
class CFSM
{
public:
CFSM() {}
virtual ~CFSM();
void Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: add storing code here
CString str(GetActiveLeaf());
ar << str;
}
else
{
// TODO: add loading code here
CString str;
ar >> str;
// 序列化后遷移狀態(tài)
TransitTo(str);
}
}
void ActiveDefaultState();
void Active(CState * pRoot);
void TransitTo(const char * lpName);
void SendEvent(WORD wEvent, WORD wParam, DWORD lParam);
const char * GetActiveLeaf();
CState * GetState(const char * lpName);
protected:
vector<CState *> m_States; // 所有的狀態(tài)
};
#endif // !defined(AFX_FSM_H__336B4996_DF5B_4CFE_BBF4_9D771F19CB23__INCLUDED_)
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -