/// <summary> /// Initializes GUI components, connections to the Heads Up Display, the video analysis, /// the game client, and the hardware components throught Unity. /// Connects /// </summary> public ClientUi() { InitializeComponent(); _allPlayers = new List<IPlayer>(); _analyzer = new BlobDetectionAnalysis(45, 45, 800, 800, 15, .3f, 0.5f); _dispMan = new DisplayManager { DisplayTimer = true, DisplaySignalStrength = true }; _client = new GameClient(); _player = _client.GetPlayer(); _guid = _client.GetGuid(); _client.PlayerEventHandler += PlayerUpdateHandler; _client.AllPlayersEventHandler += AllPlayersUpdateHandler; var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); UnityConfigurationSection section = (UnityConfigurationSection)config.GetSection("unity"); _container = new UnityContainer(); section.Configure(_container, "container"); _gamePlay = new GamePlay(_player); _gameEngine = new GameEngine(_container.Resolve<IWirelessStrengthMonitor>(), _container.Resolve<IGps>(), _player, _container.Resolve<IVideoInput>()); _signal = _container.Resolve<IWirelessStrengthMonitor>(); _running = true; /* // Threads for timer and positioning updating _timeThread = new Thread(TimeUpdateLoop) {IsBackground = true}; _timeThread.Start(); _positionThread = new Thread(PositionUpdateLoop); _positionThread.Start(); */ _gameTime = new TimeSpan(0,5,0); _timer = new Timer(1000); _timer.Elapsed += gameTimeSim; }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="signal"></param> private void WifiUpdateHandler(object sender, IWirelessStrengthMonitor signal) { if (InvokeRequired) { BeginInvoke(new ThreadStart(() => WifiUpdateHandler(sender, signal))); return; } _signal = signal; }