OSDN Git Service

Boost.MSMでメニュー部分を実装
[shooting3/shootinggame.git] / ShootingGame / GameStateMachine.h
1 #pragma once
2 namespace ShootingGame 
3 {
4
5   namespace Event 
6   {
7     struct Init{};
8     struct PushStart {};
9     struct PushSoundEdit {};
10     struct TimeOut {};
11     struct Update {};
12     struct Render {};
13     struct Escape {};
14     struct Back {};
15   }
16   
17   ref class GameMain; 
18   
19   struct GameStateMachine {
20     explicit  GameStateMachine(GameMain^ main);
21     template <class Event> void ProcessEvent(Event const& e);
22     void Start();
23     void Stop();
24     ~GameStateMachine();
25   private:
26     struct impl;
27     std::unique_ptr<impl> impl_;
28   };
29
30 }
31