コード例 #1
0
 /// Стереть, нарисованные объекты
 void RemoveGame(Drawer d)
 {
     d.Remove(playGround);
     d.Remove(rf);
     d.Remove(MenuPaused);
     d.Remove(GameOverActionMenu);
     d.Remove(border);
 }
コード例 #2
0
 public override void PrepareForNextFrame(Drawer d)
 {
     d.Remove(playGroundDrawn);
     d.Remove(rf);
     if (border != null)
     {
         d.Remove(border);
     }
 }
コード例 #3
0
ファイル: SnakeGame.cs プロジェクト: diademoff/games-cli
        public override void PrepareForNextFrame(Drawer d)
        {
            if (!IsPaused)
            {
                d.Remove(MenuPaused);
            }

            d.Remove(snake.ElementContent[snake.ElementContent.Length - 1]);
            d.Remove(apple);
        }
コード例 #4
0
        private void CloseGame(Drawer d, CloseReason reason)
        {
            RemoveAllGame(d);

            MessageBox mbox = new MessageBox("", 40, 5, FieldSize.Width, FieldSize.Height, Padding);

            switch (reason)
            {
            case CloseReason.Snake1Win:
                mbox.Text = $"Первый игрок выиграл со счетом {snake1Progress.Score}!";
                break;

            case CloseReason.Snake2Win:
                mbox.Text = $"Второй игрок выиграл со счетом {snake2Progress.Score}!";
                break;

            case CloseReason.Draw:
                mbox.Text = "Ничья!";
                break;

            case CloseReason.ForceClose:
                d.Remove(border);
                RemoveAllGame(d);
                isGameOver = true;
                return;
            }

            FinalScreen = true;
            d.Create(mbox);
            d.RedrawAll();
        }
コード例 #5
0
        public override void NextFrame(Drawer d)
        {
            if (IsPaused)
            {
                d.Create(MenuPaused);
                CheckPauseMenuSomethingSelected(d);
                return;
            }
            else
            {
                d.Remove(MenuPaused);
            }

            if (playGround.GameOver)
            {
                playGround.IsFocused = false;
                d.Create(GameOverActionMenu);
                UserSelectionOnPlaygroundFilled(d);
                return;
            }

            this.border = d.CreateBorder(ConfigStorage.Current.TetrisBorderChar.Value, new Padding(
                                             leftBorderPlayground,
                                             FieldSize.Width - rightBorderPlayground,
                                             Padding.Top,
                                             Padding.Bottom));

            playGround.NextFrame();
            rf.ChangeNextTetromino(playGround.NextTetromino);
            rf.SetScore(playGround.Score);

            d.Create(rf);
            d.Create(playGround);
            playGroundDrawn = playGround.ElementContent;
        }
コード例 #6
0
 void RemoveAllGame(Drawer d)
 {
     d.Remove(snake1);
     d.Remove(snake2);
     d.Remove(snake1Progress.StatusBar);
     d.Remove(snake2Progress.StatusBar);
     d.Remove(apple);
     d.Remove(MenuPaused);
 }
コード例 #7
0
ファイル: SnakeGame.cs プロジェクト: diademoff/games-cli
 /// Стереть элементы игры
 void RemoveGame(Drawer d)
 {
     d.Remove(snake);
     d.Remove(apple);
     d.Remove(progress.StatusBar);
     d.Remove(GameOverActionMenu);
     d.Remove(MenuPaused);
     d.Remove(border);
 }
コード例 #8
0
        /// <summary>
        /// Пользователь выбирает действие
        /// </summary>
        void GameOverUserAction(Drawer d)
        {
            d.Create(GameOverActionMenu);
            this.GameOverActionMenu.IsFocused = true;
            if (!GameOverActionMenu.IsSelected)
            {
                return;
            }

            RemoveGame(d);
            d.Remove(GameOverActionMenu);

            if (GameOverActionMenu.SelectedIndex == 0)
            {
                Init();
            }
            else if (GameOverActionMenu.SelectedIndex == 1)
            {
                isGameOver = true;
            }
        }
コード例 #9
0
ファイル: ScreenCaller.cs プロジェクト: diademoff/games-cli
        public static ScreenCaller Call(Screen screen, Drawer d, Func <int> delay)
        {
            var output = new ScreenCaller();

            screen.OnExit += (o) => { output.prevScreenResult = o; };

            do
            {
                d.Create(screen);
                d.DrawToConsole();

                Thread.Sleep(delay());
            } while (!screen.Exited);

            d.Remove(screen);
            d.DrawToConsole();

            screen.OnExit -= (o) => { output.prevScreenResult = o; };

            return(output);
        }
コード例 #10
0
        void RemoveGame(Drawer d)
        {
            if (drawnBird != null)
            {
                d.Remove(drawnBird);
            }

            foreach (var col in drawnColumns)
            {
                d.Remove(col);
            }

            d.Remove(buttonLine);
            d.Remove(topLine);
            d.Remove(scoreCounter);
            d.Remove(MenuPaused);
        }
コード例 #11
0
ファイル: SnakeGame.cs プロジェクト: diademoff/games-cli
 /// <summary>
 /// Стереть не нужное содержимое и перезапустить игру
 /// </summary>
 void RestartGame(Drawer d)
 {
     d.Remove(GameOverActionMenu);
     d.Remove(snake);
     Init();
 }