예제 #1
0
        private Game()
        {
            Configuration = new GameConfigurationManager();
            DRAW_AFTER    = Configuration.gameConfig.DRAW_INTERVAL / Configuration.gameConfig.UPDATE_INTERVAL;
            _drawFPS      = 1000 / Configuration.gameConfig.DRAW_INTERVAL;
            _gameLoop     = new HighFrequencyTimer(1000 / Configuration.gameConfig.UPDATE_INTERVAL, id => Update(id), () => { }, () => { }, (fps) =>
            {
                _actualFPS = fps;
            });
            _leaderboardLoop = new Timer(UpdateLeaderboard, null, Configuration.gameConfig.LEADERBOARD_PUSH_INTERVAL, Configuration.gameConfig.LEADERBOARD_PUSH_INTERVAL);

            _gameTime       = new GameTime();
            _space          = new Map();
            GameHandler     = new GameHandler(_space);
            _payloadManager = new PayloadManager();

            UserHandler       = new UserHandler(GameHandler);
            Leaderboard       = new Leaderboard(UserHandler);
            ConnectionManager = new ConnectionManager(UserHandler, _locker);

            RegistrationHandler  = new RegistrationHandler();
            RuntimeConfiguration = new RuntimeConfiguration();

            _gameLoop.Start();
        }
예제 #2
0
        private Game()
        {
            Configuration    = new GameConfigurationManager();
            DRAW_AFTER       = TimeSpan.FromMilliseconds(Configuration.gameConfig.DRAW_INTERVAL);
            _gameLoop        = new HighFrequencyTimer(1000 / Configuration.gameConfig.UPDATE_INTERVAL, id => Update(id));
            _leaderboardLoop = new Timer(UpdateLeaderboard, null, Configuration.gameConfig.LEADERBOARD_PUSH_INTERVAL, Configuration.gameConfig.LEADERBOARD_PUSH_INTERVAL);

            _gameTime       = new GameTime();
            _space          = new Map();
            GameHandler     = new GameHandler(_space);
            _payloadManager = new PayloadManager();

            UserHandler       = new UserHandler(GameHandler);
            Leaderboard       = new Leaderboard(UserHandler);
            ConnectionManager = new ConnectionManager(UserHandler, _locker);

            RegistrationHandler  = new RegistrationHandler();
            RuntimeConfiguration = new RuntimeConfiguration();

            _gameLoop.Start();
        }
예제 #3
0
        public Game(IHubContext <GameHub> gameHub)
        {
            Configuration = new GameConfigurationManager();

            _gameLoop = new HighFrequencyTimer(1000 / Configuration.gameConfig.UPDATE_INTERVAL, async id => await Update(id), () => { }, () => { }, (fps) =>
            {
                _actualFPS = fps;
            });
            _gameHub = gameHub;

            _leaderboardLoop = new Timer(UpdateLeaderboard, null, Configuration.gameConfig.LEADERBOARD_PUSH_INTERVAL, Configuration.gameConfig.LEADERBOARD_PUSH_INTERVAL);

            DRAW_AFTER        = Configuration.gameConfig.DRAW_INTERVAL / Configuration.gameConfig.UPDATE_INTERVAL;
            _gameTime         = new GameTime();
            _space            = new Map(this, gameHub);
            GameHandler       = new GameHandler(_space, this);
            _payloadManager   = new PayloadManager();
            UserHandler       = new UserHandler(GameHandler);
            Leaderboard       = new Leaderboard(UserHandler, gameHub);
            ConnectionManager = new ConnectionManager(UserHandler, _gameLock, gameHub);

            _gameLoop.Start();
        }