private void AddPlayerButton_Executed(object arg) { ActivePlayerButtonCommand = _setPlayerButton; _lockPlayerButtonSync = true; try { if (Settings.UsePlayersKeys == PlayerKeysModes.Joystick || Settings.UsePlayersKeys == PlayerKeysModes.Com) { _buttonManager = PlatformManager.Instance.ButtonManagerFactory.Create(Settings); _buttonManager.KeyPressed += OnPlayerKeyPressed; if (!_buttonManager.Run()) { ActivePlayerButtonCommand = _addPlayerButton; _buttonManager.Dispose(); _buttonManager = null; } } } finally { _lockPlayerButtonSync = false; } }
internal bool OnPlayerKeyPressed(GameKey key) { // Задание кнопки для игрока (в настройках) // Может быть не только при this.engine.stage == GameStage.Before, но и в процессе игры if (_activePlayerButtonCommand == _setPlayerButton) { if (Settings.UsePlayersKeys == PlayerKeysModes.Joystick) { ProcessNewPlayerButton(key); _buttonManager.Stop(); _buttonManager.Dispose(); _buttonManager = null; } } return(false); }