Example #1
0
        //Обработка события передвижения у контроллера
        public void OnMove(object sender, KeyboardControllerEventArgs args)
        {
            switch (args.Key)
            {
            //Проверка границ и передвижение координат
            case ConsoleKey.UpArrow:
                if (this.PositionY > 0)
                {
                    this.args.NewStatePosY--;
                }
                break;

            case ConsoleKey.DownArrow:
                if (this.PositionY < GameField.MaxHeight)
                {
                    this.args.NewStatePosY++;
                }
                break;
            }
            //Если границы допускают передвижение то меняем положение оригинала и сообщаем отрисовщику
            if (this.args.NewStatePosY != this.PositionY)
            {
                this.PositionX = this.args.NewStatePosX;
                this.PositionY = this.args.NewStatePosY;
                if (this.move != null)
                {
                    this.move(this, this.args);
                }
            }
        }
Example #2
0
 //Действия на выход
 public void OnExit(object sender, KeyboardControllerEventArgs args)
 {
     //Если был нажат esc то игрок вышел
     if (args.Key == ConsoleKey.Escape)
     {
         //Устаналиваем аргумент жизни в false
         this.args.IsAlive = false;
     }
     //Оповещаем подписчиков на событии выход игрока
     this.exit?.Invoke(this, this.args);
     //Устанавливаем флаг завершения игры
     GameField.IsEndGame = true;
     //Удаляем всех подписчиков
     this.exit = this.move = this.shoot = null;
 }
Example #3
0
 //Действия на выстрел
 public void OnShoot(object sender, KeyboardControllerEventArgs args)
 {
     this.shoot(this, this.args);
 }