Beispiel #1
0
        /// <inheritdoc/>
        public void EndTypeUpdated(EndType endType, int flagged)
        {
            if (_gameOver)
            {
                return;
            }

            if (endType != EndType.ButtonPressed)
            {
                _gameOver = true;
            }

            Gameover?.Invoke(this, new GameArgs(endType, flagged));
        }
Beispiel #2
0
        private void GameTime_Tick(object sender, EventArgs e)
        {
            if (_snake.IsColliding(_playgroundBounds))
            {
                _gameTime.Stop();
                Gameover?.Invoke(this, EventArgs.Empty);
                return;
            }

            if (_snake.CanEat(_meal))
            {
                _snake.Eat(_meal);
                CreateMeal();
                SetDifficulty();
                PointsChanged?.Invoke(this, EventArgs.Empty);
            }

            _snake.Move(_direction);
            Refresh();

            _updated = false;
        }
 protected virtual void OnGameover() => Gameover?.Invoke();