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(); }
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(); }
private void Initialize(double fps, int q, int x, int y, int n, int k2) { // Setup the timer this.timer = new HighFrequencyTimer(fps, this.OnCallback, this.OnStarted, this.OnStopped, this.OnActualFpsUpdate); // Setup cells this.cells = new Cell[x, y]; for (int i = 0; i < x; i++) { for (int j = 0; j < y; j++) { this.cells[i, j] = new Cell(i, j, q); } } // Infect a random cell in the system, this starts us off var cell = this.cells[RandomNumber.GetRandomInt(x), RandomNumber.GetRandomInt(y)]; cell.state--; this.initialState = q; this.width = x; this.height = y; this.generations = n; this.baseRate = k2 / 100000d; }