質問

私がいるという役場合は、殴か剣か僧ですかね。となっているように見えますがきを使用して実装された状態で機械..

知っている 状パターン からGoFかもしれませんが、同じだが必要になり他の方の実施状態です。教えてください..から論文や書籍を含む詳細な実施トレードオフのところ)、"ください。感謝

役に立ちましたか?

解決

チェック Ragelするます。

他のヒント

を使用していますHarelのstatecharts(同様/と同等の状態機械がやりやすい-まあ良いもののよう 実Statecharts C/C++.

ここでは、非常に単純なFSMの実装です。

public delegate void ProcessEvent<TEvent>(TEvent ev);

public abstract class StateMachine<TEvent>
{
    private ProcessEvent<TEvent> state;

    protected ProcessEvent<TEvent> State
    {
        get { return this.state; }
        set { this.state = value; }
    }

    public void ProcessEvent(TEvent ev)
    {
        this.state(ev);
    }
}
次のように

あなたはそれを使用することになります:

public class MyFsm : StateMachine<byte>
{
    public MyFsm()
    {
        this.State = this.Started;
    }

    private void Started(byte ev)
    {
        Console.WriteLine(ev);

        if (ev == 255)
        {
            this.State = this.Stopped;
        }
    }

    private void Stopped(byte ev) { }
}

class Program
{
    static void Main(string[] args)
    {
        MyFsm fsm = new MyFsm();
        fsm.ProcessEvent((byte) 0);
        fsm.ProcessEvent((byte) 255);
        fsm.ProcessEvent((byte) 0);
    }
}

有限状態機械を駆動し、すべてのイベントでゲームを実装するための最適なプラットフォームを提供します。

は、あなたの目標は、既存のフレームワークを使用することができ、状態マシンを構築することですので、あなたが必要とするすべてはあなたのイベントの抽出およびアクションを追加するよりも。

一例のフレームワークはで見ることができます

http://www.StateSoft.orgする

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top