예제 #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            #region base sample

            //ColleagueA a = new ColleagueA();
            //ColleagueB b = new ColleagueB();
            //var mediator = new Mediator(a, b);
            //a.Send("你好", mediator);

            #endregion

            #region msg notify sample

            var mediator = new NotificationMediator();
            var admin    = new Person(mediator, "Admin");
            var user     = new Person(mediator, "User");

            admin.Send("Watch out!");
            user.Send("I have Received");

            #endregion

            Console.ReadKey();
        }
예제 #2
0
 public GameContext(Microsoft.Xna.Framework.Game game, SpriteBatch spriteBatch, IScreenSizeManager screenSizeManager, IGameAudioManager gameAudioManager)
 {
     _game = game ?? throw new ArgumentNullException(nameof(game));
     if (spriteBatch == null)
     {
         throw new ArgumentNullException(nameof(spriteBatch));
     }
     if (screenSizeManager == null)
     {
         throw new ArgumentNullException(nameof(screenSizeManager));
     }
     GameGraphics = new GameGraphics(spriteBatch, screenSizeManager, new TrackingCamera2D(this)
     {
         Zoom = 1f
     });
     GameAudio            = gameAudioManager ?? throw new ArgumentNullException(nameof(gameAudioManager));
     Random               = new Random();
     AssetManager         = new AssetManager(_game);
     StateMachine         = new GameStateMachine();
     MenuFactory          = new MenuFactory(this);
     CollisionSystem      = new BasicCollisionSystem();
     NotificationMediator = new NotificationMediator();
 }