Example #1
0
        private void skControl1_PaintSurface(object sender, SkiaSharp.Views.Desktop.SKPaintSurfaceEventArgs e)
        {
            var          canvas       = e.Surface.Canvas;
            GameRenderer gameRenderer = new GameRenderer(canvas, _scale, 80, GetHexagonHeight(80), new SKSize(skControl1.Width, skControl1.Height));

            gameRenderer.ShowScoreboard = true;
            gameRenderer.ShowRobotId    = chkShowRobotId.Checked;

            if (_timer.Enabled)
            {
                gameRenderer.Speed = timerSpeed;
            }
            else
            {
                gameRenderer.Speed = 0;
            }


            if (cboIndicator.SelectedItem == null || ((RobotIdSelection)cboIndicator.SelectedItem).IsNone)
            {
                gameRenderer.ShowDebugIndicators = false;
            }
            else if (((RobotIdSelection)cboIndicator.SelectedItem).IsAll)
            {
                gameRenderer.ShowDebugIndicators    = true;
                gameRenderer.ShowAllDebugIndicators = true;
            }
            else
            {
                gameRenderer.ShowDebugIndicators       = true;
                gameRenderer.ShowAllDebugIndicators    = false;
                gameRenderer.ShowDebugIndicatorRobotId = ((RobotIdSelection)cboIndicator.SelectedItem).Id;
            }



            if (_gameController != null)
            {
                if (_gameController.Round == 0)
                {
                    gameRenderer.DrawStartScreen(_gameController.BlueTeamName, _gameController.RedTeamName);
                }
                else if (_gameController.IsFinished)
                {
                    gameRenderer.DrawWinnerScreen(_gameController.WinnerTeam, _gameController.WinnerTeam == Team.Blue ? _gameController.BlueTeamName : _gameController.RedTeamName);
                }
                else
                {
                    lock (_syncLockObj) {
                        gameRenderer.DrawGame(_gameController);
                    }
                }
            }
            else
            {
                gameRenderer.DrawInfo();
            }
        }