/// <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; }
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>() ); }