Example #1
0
        /// <summary>
        /// Creates new instance of <see cref="Game"/>.
        /// </summary>
        /// <param name="score"><see cref="ScoreManager"/> to keep track of points.</param>
        /// <param name="textDraw"><see cref="TextDraw"/> to write text objects to the <see cref="ScreenCanvas"/>.</param>
        /// <param name="canvas"><see cref="ScreenCanvas"/> to draw objects on.</param>
        public Game(ScoreManager score, TextDraw textDraw, ScreenCanvas canvas) : base()
        {
            _score    = score;
            _textDraw = textDraw;
            _canvas   = canvas;

            //Start with 4 asteroids
            _currentLevel = 4;
            _inProcess    = true;

            //Setup caches with a new ship
            _cache = new CacheManager(
                _score
                , new Ship()
                , new AsteroidBelt(_currentLevel)
                , Enumerable.Range(0, 4).Select(i => new Bullet()).ToList()
                );

            _collisionManager = new CollisionManager(_cache);
            _drawingManager   = new DrawingManager(_cache, _canvas);

            //Unpaused
            _paused     = false;
            _pauseTimer = PAUSE_INTERVAL;
        }
Example #2
0
        public TitleScreen(TextDraw textDraw, ScreenCanvas canvas) : base()
        {
            _textDraw = textDraw;
            _canvas   = canvas;

            InitTitleScreen();

            _cache = new CacheManager(
                new ScoreManager(new TextDraw(_canvas))
                , null
                , new AsteroidBelt(15, Asteroid.ASTEROID_SIZE.SMALL)
                , new List <Bullet>()
                );
        }