Пример #1
0
        public override ControlActions GetAction()
        {
            ControlActions action  = 0;
            var            keyInfo = new ConsoleKeyInfo();

            keyInfo = Console.ReadKey(true);
            switch (keyInfo.Key)
            {
            case ConsoleKey.LeftArrow:
                action = ControlActions.MoveLeft;
                break;

            case ConsoleKey.RightArrow:
                action = ControlActions.MoveRight;
                break;

            case ConsoleKey.UpArrow:
                action = ControlActions.MoveUp;
                break;

            case ConsoleKey.DownArrow:
                action = ControlActions.MoveDown;
                break;

            case ConsoleKey.Spacebar:
                action = ControlActions.Shoot;
                break;
            }
            return(action);
        }
        //private
        public void GameControl()
        {
            while (!GameOver)
            {
                if (GameOver)
                {
                    break;
                }
                _action = _controlBase.GetAction();
                switch (_action)
                {
                case ControlActions.MoveUp:
                    _direction = MoveDirection.Up;
                    break;

                case ControlActions.MoveDown:
                    _direction = MoveDirection.Down;
                    break;

                case ControlActions.MoveLeft:
                    _direction = MoveDirection.Left;
                    break;

                case ControlActions.MoveRight:
                    _direction = MoveDirection.Right;
                    break;

                case ControlActions.Shoot:
                    _tank.Shoot(MyTank[1].X, MyTank[1].Y, _direction);
                    break;
                }
            }
        }
Пример #3
0
        public GameEngineControl(TankEngine tank, EnemyTankEngine enemyTank, BulletEngine bullet,
                                 ControlBase controlBase,
                                 MapBase map, MoveDirection direction, MoveDirection enemyDirection)
        {
            PlayerWin           = false;
            GameOver            = false;
            _tank               = tank;
            _enemyTank          = enemyTank;
            _bullet             = bullet;
            _controlBase        = controlBase;
            _map                = map;
            _lastDirection      = direction;
            _direction          = direction;
            _lastEnemyDirection = enemyDirection;
            _enemyDirection     = enemyDirection;

            _bulletsTimer          = new Timer(10000);
            _bulletsTimer.Elapsed += BulletsTimerOnElapsed;
            _bulletsTimer.Interval = _bullesSpeed;

            _tanksTimer          = new Timer(10000);
            _tanksTimer.Elapsed += TanksTimerOnElapsed;
            _tanksTimer.Interval = _tanksSpeed;
            switch (direction)
            {
            case MoveDirection.Up:
                _action = ControlActions.MoveUp;
                break;

            case MoveDirection.Down:
                _action = ControlActions.MoveDown;
                break;

            case MoveDirection.Right:
                _action = ControlActions.MoveRight;
                break;

            case MoveDirection.Left:
                _action = ControlActions.MoveLeft;
                break;
            }
            switch (enemyDirection)
            {
            case MoveDirection.Up:
                _enemyAction = ControlActions.MoveUp;
                break;

            case MoveDirection.Down:
                _enemyAction = ControlActions.MoveDown;
                break;

            case MoveDirection.Right:
                _enemyAction = ControlActions.MoveRight;
                break;

            case MoveDirection.Left:
                _enemyAction = ControlActions.MoveLeft;
                break;
            }
        }
Пример #4
0
        public static void SetControl(ControlActions controlAction, Keys key)
        {
            if (KeyToControl.ContainsValue(controlAction))
            {
                KeyToControl.Remove(KeyToControl.First(kv => kv.Value == controlAction).Key);
            }

            KeyToControl[key] = controlAction;
        }
Пример #5
0
 /// <summary>
 ///     Начинает процесс смены кнопки управления заданным действием
 /// </summary>
 /// <param name="ca">Действие, управление которым мы собираемся менять</param>
 private void ChangeControls(ControlActions ca)
 {
     Choise = ca;
     foreach (var b in ChoiseButtons)
     {
         ChoiseButtons[b.Key].SetText(GUI.Controls.KeyFromControl(b.Key).ToString());
     }
     ChoiseButtons[ca].SetText("<choose>");
 }
Пример #6
0
        /// <inheritdoc />
        /// <summary>
        ///     При нажатии клавиши, если происходит смена клавиши управления — меняем её на на нажатую.
        /// </summary>
        /// <param name="sender">Объект, вызвавший событие</param>
        /// <param name="e">Параметры события</param>
        protected override void OnKeyDown(object sender, KeyEventArgs e)
        {
            if (Choise == ControlActions.None)
            {
                return;
            }

            GUI.Controls.SetControl(Choise, e.KeyCode);
            foreach (var b in ChoiseButtons)
            {
                ChoiseButtons[b.Key].SetText(GUI.Controls.KeyFromControl(b.Key).ToString());
            }

            Choise = ControlActions.None;
        }
Пример #7
0
 void Awake()
 {
     if (instance != null && instance != this)
     {
         Destroy(this.gameObject);
     }
     else
     {
         instance = this;
         DontDestroyOnLoad(this);
     }
     Actions      = new ControlActions();
     MoveVector   = new Vector2(0, 0);
     AttackVector = new Vector2(0, 0);
 }
Пример #8
0
    public static bool IsActionAllowed(this ControlActions controlAction, Type controlType)
    {
        switch (controlAction)
        {
        case ControlActions.New:
            return(controlType == typeof(UserControlA) || controlType == typeof(UserControlB) || controlType == typeof(UserControlC));

        case ControlActions.Edit:
            return(controlType == typeof(UserControlA));

        case ControlActions.Delete:
            return(controlType == typeof(UserControlA) || controlType == typeof(UserControlC));
        }
        return(false);
    }
    //Vector2 movement1;
    //Vector2 movement2;


    private void Awake()
    {
        pTransform = PlayerCube.GetComponent <Transform>();
        controls   = new ControlActions();

        controls.Player.Move.performed += ctx => movement = ctx.ReadValue <Vector2>();
        controls.Player.Move.canceled  += ctx => movement = Vector2.zero;

        /*
         * controls.Player.Move1.performed += ctx => movement1 = ctx.ReadValue<Vector2>();
         * controls.Player.Move1.canceled += ctx => movement1 = Vector2.zero;
         *
         * controls.Player.Move2.performed += ctx => movement2 = ctx.ReadValue<Vector2>();
         * controls.Player.Move2.canceled += ctx => movement2 = Vector2.zero;
         */
    }
Пример #10
0
        /// <summary>
        /// Show the control scheme creator in a certain mode.
        /// </summary>
        /// <param name="mode">Whether we're creating or editing.</param>
        public void Show(ControlSchemeCreatorMode mode)
        {
            CreatorObject.SetActive(true);
            SelectorObject.SetActive(false);
            Mode = mode;
            switch (mode)
            {
            case ControlSchemeCreatorMode.Create:
            {
                _currentlyEditingScheme         = new ControlScheme(ControlActions.CreateDefaultTank(), "NewScheme", false);
                SubmitSchemeButtonText.text     = "Save";
                NameVerifier.CanHaveSameName    = false;
                SubmitSchemeButton.interactable = NameVerifier.Validate(_currentlyEditingScheme.Name);
                SchemeNameField.interactable    = true;
                SchemeNameField.text            = _currentlyEditingScheme.Name;
                break;
            }

            case ControlSchemeCreatorMode.Edit:
            {
                _currentlyEditingScheme         = ControlSchemeLoader.Current;
                SubmitSchemeButtonText.text     = "Save";
                SubmitSchemeButton.interactable = true;
                Debug.Log("Editing scheme...");
                Debug.Log(SubmitSchemeButton.interactable);
                NameVerifier.Button.interactable = true;
                SchemeNameField.interactable     = false;
                SchemeNameField.text             = ControlSchemeLoader.Current.Name;
                NameVerifier.CanHaveSameName     = true;
                break;
            }
            }
            RebindContainerPopulator.EditingScheme = _currentlyEditingScheme;
            UseFpsControlsToggle.isOn    = _currentlyEditingScheme.FpsControls;
            MouseSensitivitySlider.value = _currentlyEditingScheme.MouseSensitivity;
            TopButtonsTabView.SetAllButtonsInteractable(false);
            SettingsApplyButton.interactable = false;
            SettingsBackButton.interactable  = false;
        }
Пример #11
0
        public MoveDirection Control(out ControlActions enemyAction, List <TankFragment> enemyTank,
                                     List <TankFragment> myTank, EnemyTankEngine tank, ControlActions enemyTankLastAction,
                                     MoveDirection direction, BulletEngine bullet, MapBase map)
        {
            ControlActions nextEnemyAction;
            MoveDirection  nextEnemyDirection = 0;

            EnemyTankChoseActions(out nextEnemyAction, enemyTank, myTank, enemyTankLastAction);
            if (nextEnemyAction == ControlActions.Shoot)
            {
                tank.Shoot(enemyTank[1].X, enemyTank[1].Y, direction);
                enemyAction = enemyTankLastAction;
            }
            else
            {
                enemyAction = nextEnemyAction;
            }
            switch (enemyAction)
            {
            case ControlActions.MoveUp:
                nextEnemyDirection = MoveDirection.Up;
                break;                                                                      //дивитись коментар до GameEngineControl

            case ControlActions.MoveDown:
                nextEnemyDirection = MoveDirection.Down;
                break;

            case ControlActions.MoveLeft:
                nextEnemyDirection = MoveDirection.Left;
                break;

            case ControlActions.MoveRight:
                nextEnemyDirection = MoveDirection.Right;
                break;
            }
            return(nextEnemyDirection);
        }
Пример #12
0
        public FormSDB()
        {
            InitializeComponent();

            cmbSearch.SelectedIndex   = 0;
            cmbLanguage.SelectedIndex = 0;
            ChangeControlsOnClients();
            Control = new ControlActions(this);

            //событие закрытия формы
            this.FormClosed += (sender, e) => Control.CloseService();
            //событие выбора комбобокса "Поиск по"
            cmbSearch.SelectedIndexChanged += (sender, e) => СhangeControls();
            //событие нажатия кнопки "Поиск"
            btnSearch.Click += MainSearch;
            //событие нажатия кнопки "Информация о клиенте" в таблице "Статистика по клиентам"
            btnInfoClientCS.Click += SearchClient;
            //событие нажатия кнопки "Информация о книгах"
            btnInfoBooks.Click += SearchBook;
            //событие нажатия кнопки "Информация о клиенте" в таблице "Книги"
            btnInfoClientB.Click += SearchClient;
            //событие нажатия кнопки "Статистика клиента"
            btnClientStatistics.Click += SearchStatisticsClient;
        }
Пример #13
0
    public Sprite GetControlSprite(ControlActions controlActions, string controlScheme)
    {
        Sprite sprite = null;

        switch (controlScheme)
        {
        case "Gamepad":
            sprite = gamepadButtonSprites[(int)controlActions];
            break;

        case "Keyboard & Mouse":
            sprite = firstKeyboardButtonSprites[(int)controlActions];
            break;

        case "SecondKeyboard":
            sprite = secondKeyboardButtonSprites[(int)controlActions];
            break;

        default:
            break;
        }

        return(sprite);
    }
        public GameEngineControl(TankEngine tank, EnemyTankEngine enemyTank, BulletEngine bullet,
                                 ControlBase controlBase,
                                 MapBase map, MoveDirection direction, MoveDirection enemyDirection)
        {
            PlayerWin           = false;
            GameOver            = false;
            _tank               = tank;
            _enemyTank          = enemyTank;
            _bullet             = bullet;
            _controlBase        = controlBase;
            _map                = map;
            _lastDirection      = direction;
            _direction          = direction;
            _lastEnemyDirection = enemyDirection;
            _enemyDirection     = enemyDirection;

            _bulletsTimer          = new Timer(10000);
            _bulletsTimer.Elapsed += BulletsTimerOnElapsed;
            _bulletsTimer.Interval = _bullesSpeed;

            _tanksTimer          = new Timer(10000);
            _tanksTimer.Elapsed += TanksTimerOnElapsed;
            _tanksTimer.Interval = _tanksSpeed;


            //тут двічі, і ще в методі Control класу EnemyTankEngine, де ми отримуємо ControlAction є код, який повторюється
            // public static ControlAction GetControlAction(MoveDirection direction)
            //     switch    (direction)
            //         {
            //               case MoveDirection.Up:
            //                 return ControlActions.MoveUp;
            //                 break;
            //            case MoveDirection.Down:
            //                 return = ControlActions.MoveDown;
            //                 break;
            //            case MoveDirection.Right:
            //                 return = ControlActions.MoveRight;
            //                 break;
            //            case MoveDirection.Left:
            //                 return = ControlActions.MoveLeft;
            //                 break;
            //        }
            //        return ControlActions.MoveUp;
            //_action = GetControlAction(direction)



            //_enemyAction = GetControlAction(enemyDirection)


            switch (direction)
            {
            case MoveDirection.Up:
                _action = ControlActions.MoveUp;
                break;

            case MoveDirection.Down:
                _action = ControlActions.MoveDown;
                break;

            case MoveDirection.Right:
                _action = ControlActions.MoveRight;
                break;

            case MoveDirection.Left:
                _action = ControlActions.MoveLeft;
                break;
            }
            switch (enemyDirection)
            {
            case MoveDirection.Up:
                _enemyAction = ControlActions.MoveUp;
                break;

            case MoveDirection.Down:
                _enemyAction = ControlActions.MoveDown;
                break;

            case MoveDirection.Right:
                _enemyAction = ControlActions.MoveRight;
                break;

            case MoveDirection.Left:
                _enemyAction = ControlActions.MoveLeft;
                break;
            }
        }
Пример #15
0
 /// <summary>
 ///     Выход из меню
 /// </summary>
 /// <param name="sender">Объект, вызвавший событие</param>
 /// <param name="e">Параметры события</param>
 private void Exit(object sender, EventArgs e)
 {
     Choise = ControlActions.None;
     ReturnControl();
 }
Пример #16
0
 public static Keys KeyFromControl(ControlActions controlActions)
 {
     return(KeyToControl.ContainsValue(controlActions)
         ? KeyToControl.First(kv => kv.Value == controlActions).Key
         : Keys.None);
 }
Пример #17
0
        private void OnControlTrigger(ControlActions action)
        {
            switch (action)
            {
            case ControlActions.Right:
            {
                Player.RunRight();
                break;
            }

            case ControlActions.Left:
            {
                Player.RunLeft();
                break;
            }

            case ControlActions.Jump:
            {
                Player.Jump();
                break;
            }

            case ControlActions.Stop:
            {
                Player.TryToStop();
                break;
            }

            case ControlActions.StopTime:
            {
                Stop();
                //window.Pause();
                break;
            }

            case ControlActions.RunTime:
            {
                Start();
                break;
            }

            case ControlActions.Debug:
            {
                Player.MoveTo(new Vector {
                        x = 0, y = 0
                    });
                break;
            }

            case ControlActions.Fly:
            {
                Stop();
                //window.GameOver();
                //Player.Flight = !Player.Flight;
                break;
            }

            case ControlActions.ScaleMinus:
            {
                //window.ChangeScale(0.9);
                break;
            }

            case ControlActions.ScalePlus:
            {
                //window.ChangeScale(10 / 9.0);
                break;
            }
            }
        }
Пример #18
0
 public PlayerActions(ControlActions wrapper)
 {
     m_Wrapper = wrapper;
 }
Пример #19
0
        //private
        public void EnemyTankChoseActions(out ControlActions enemyTankNextAction, List <TankFragment> enemyTank,
                                          List <TankFragment> tank, ControlActions enemyTankAction)
        {
            enemyTankNextAction = 0;
            if (enemyTank[4].X > tank[4].X && enemyTank[4].Y > tank[4].Y)
            {
                switch (enemyTankAction)
                {
                case ControlActions.MoveRight:
                    enemyTankNextAction = ControlActions.MoveUp;
                    break;

                case ControlActions.MoveLeft:
                    enemyTankNextAction = ControlActions.MoveUp;
                    break;

                case ControlActions.MoveUp:
                    enemyTankNextAction = ControlActions.MoveLeft;
                    break;

                case ControlActions.MoveDown:
                    enemyTankNextAction = ControlActions.MoveLeft;
                    break;
                }
            }
            else if (enemyTank[4].X > tank[4].X && enemyTank[4].Y < tank[4].Y)
            {
                switch (enemyTankAction)
                {
                case ControlActions.MoveRight:
                    enemyTankNextAction = ControlActions.MoveDown;
                    break;

                case ControlActions.MoveLeft:
                    enemyTankNextAction = ControlActions.MoveDown;
                    break;

                case ControlActions.MoveUp:
                    enemyTankNextAction = ControlActions.MoveLeft;
                    break;

                case ControlActions.MoveDown:
                    enemyTankNextAction = ControlActions.MoveLeft;
                    break;
                }
            }
            else if (enemyTank[4].X <tank[4].X && enemyTank[4].Y> tank[4].Y)
            {
                switch (enemyTankAction)
                {
                case ControlActions.MoveRight:
                    enemyTankNextAction = ControlActions.MoveUp;
                    break;

                case ControlActions.MoveLeft:
                    enemyTankNextAction = ControlActions.MoveUp;
                    break;

                case ControlActions.MoveUp:
                    enemyTankNextAction = ControlActions.MoveRight;
                    break;

                case ControlActions.MoveDown:
                    enemyTankNextAction = ControlActions.MoveRight;
                    break;
                }
            }
            else if (enemyTank[4].X < tank[4].X && enemyTank[4].Y < tank[4].Y)
            {
                switch (enemyTankAction)
                {
                case ControlActions.MoveRight:
                    enemyTankNextAction = ControlActions.MoveDown;
                    break;

                case ControlActions.MoveLeft:
                    enemyTankNextAction = ControlActions.MoveDown;
                    break;

                case ControlActions.MoveUp:
                    enemyTankNextAction = ControlActions.MoveRight;
                    break;

                case ControlActions.MoveDown:
                    enemyTankNextAction = ControlActions.MoveRight;
                    break;
                }
            }
            else if (enemyTank[4].X == tank[4].X && enemyTank[4].Y > tank[4].Y)
            {
                switch (enemyTankAction)
                {
                case ControlActions.MoveRight:
                    enemyTankNextAction = ControlActions.MoveUp;
                    break;

                case ControlActions.MoveLeft:
                    enemyTankNextAction = ControlActions.MoveUp;
                    break;

                case ControlActions.MoveUp:
                    enemyTankNextAction = ControlActions.Shoot;
                    break;

                case ControlActions.MoveDown:
                    enemyTankNextAction = ControlActions.MoveLeft;
                    break;
                }
            }
            else if (enemyTank[4].X > tank[4].X && enemyTank[4].Y == tank[4].Y)
            {
                switch (enemyTankAction)
                {
                case ControlActions.MoveRight:
                    enemyTankNextAction = ControlActions.MoveUp;
                    break;

                case ControlActions.MoveLeft:
                    enemyTankNextAction = ControlActions.Shoot;
                    break;

                case ControlActions.MoveUp:
                    enemyTankNextAction = ControlActions.MoveLeft;
                    break;

                case ControlActions.MoveDown:
                    enemyTankNextAction = ControlActions.MoveLeft;
                    break;
                }
            }
            else if (enemyTank[4].X == tank[4].X && enemyTank[4].Y < tank[4].Y)
            {
                switch (enemyTankAction)
                {
                case ControlActions.MoveRight:
                    enemyTankNextAction = ControlActions.MoveDown;
                    break;

                case ControlActions.MoveLeft:
                    enemyTankNextAction = ControlActions.MoveDown;
                    break;

                case ControlActions.MoveUp:
                    enemyTankNextAction = ControlActions.MoveLeft;
                    break;

                case ControlActions.MoveDown:
                    enemyTankNextAction = ControlActions.Shoot;
                    break;
                }
            }
            else if (enemyTank[4].X < tank[4].X && enemyTank[4].Y == tank[4].Y)
            {
                switch (enemyTankAction)
                {
                case ControlActions.MoveRight:
                    enemyTankNextAction = ControlActions.Shoot;
                    break;

                case ControlActions.MoveLeft:
                    enemyTankNextAction = ControlActions.MoveUp;
                    break;

                case ControlActions.MoveUp:
                    enemyTankNextAction = ControlActions.MoveRight;
                    break;

                case ControlActions.MoveDown:
                    enemyTankNextAction = ControlActions.MoveRight;
                    break;
                }
            }
        }