public MainWindow(IFoodManager foodManager) { _foodManager = foodManager; InitializeComponent(); time = new DispatcherTimer(); snakebody = new List <Snake>(); food = new List <Food>(); snakebody.Add(new Snake(x, y)); food.Add(new Food(rd.Next(0, 37) * 10, rd.Next(0, 35) * 10)); time.Interval = new TimeSpan(0, 0, 0, 0, 100); /*you can change speed of the snake here */ time.Tick += time_Tick; }
public GameManager(IGameLogger logger, IFoodManager foodManager, ISnakeGameComponent snake, IGameFieldEntity gameField, IGameSettings gameSettings, IGamePoints gamePoints, ISnakeEntity snakeEntity, ISceneManager sceneManager, Game game, IGraphicsSystem graphicsSystem, IGameKeys gameKeys) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _foodManager = foodManager ?? throw new ArgumentNullException(nameof(foodManager)); _snakeComponent = snake ?? throw new ArgumentNullException(nameof(snake)); _gameField = gameField ?? throw new ArgumentNullException(nameof(gameField)); _gameSettings = gameSettings ?? throw new ArgumentNullException(nameof(gameSettings)); _gamePoints = gamePoints ?? throw new ArgumentNullException(nameof(gamePoints)); _snakeEntity = snakeEntity ?? throw new ArgumentNullException(nameof(snakeEntity)); _sceneManager = sceneManager ?? throw new ArgumentNullException(nameof(sceneManager)); _game = game ?? throw new ArgumentNullException(nameof(game)); _graphicsSystem = graphicsSystem ?? throw new ArgumentNullException(nameof(graphicsSystem)); _gameKeys = gameKeys ?? throw new ArgumentNullException(nameof(gameKeys)); Initialize(); }
private void Start() { _objPooler = objPooler.GetComponent <IPooler>(); _foodManager = foodManager.GetComponent <IFoodManager>(); _snakeLength = _initialSnakeLength; transform.position = new Vector3(_snakeX, _snakeY); _moveRate = 1 / _movesPerSecond; _grid = new int[GRID_WIDTH, GRID_HEIGHT]; _snakeTransform = this.transform; _direction = Vector3.right; _grid[_snakeX, _snakeY] = _snakeLength; UpdateText(); for (int i = 0; i < _initialFoodAmnt; i++) { SpawnFood(); } }
private async Task LoadAsync() { var tasks = new List <Task> { Task.Run(() => { _randomGenerator = new RandomGenerator(2); _gameFieldFactory = new GameFieldFactory(GameSettings, _randomGenerator); _gameField = _gameFieldFactory.GetRandomField(GameSettings.MapWidth, GameSettings.MapHeight, 0.9d); _gameFieldComponent = new GameFieldComponent(_gameField, new GameFieldGraphicsComponent(_gameField, GraphicsSystem.GraphicsSettings, GraphicsSystem, GameSettings)); _snakeEntity = new SnakeEntity(Logger, _gameField, GameSettings); _snakeEntity.Grow(); _snakeMovementComponent = new SnakeMovementTurnBased(_snakeEntity, _gameField, GameSettings, new SnakeControlKeys(Keys.Up, Keys.Down, Keys.Left, Keys.Right)); _snakeGameComponent = new SnakeGameComponent(_snakeEntity, new SnakeGraphicsComponent(_snakeEntity, GraphicsSystem, _snakeMovementComponent, _gameField), _snakeMovementComponent, Logger); _foodManager = new FoodManager(Game, _gameField, GameSettings, GraphicsSystem, Logger, _snakeEntity); _foodManager.Add(_foodManager.GenerateRandomFood()); #region Common _gamePoints = new GamePoints(GameSettings.RemainingLives); _gameManager = new GameManager(Logger, _foodManager, _snakeGameComponent, _gameField, GameSettings, _gamePoints, _snakeEntity, SceneManager, Game, GraphicsSystem, GameKeys) { Enabled = true }; #endregion Common grayScaleEffect = Game.Content.Load <Effect>("Effects/grayscale"); shadeEffect = Game.Content.Load <Effect>("Effects/dark"); #region UI components _fpsCounter = new FpsCounter(new Vector2(Game.GraphicsDevice.Viewport.Width - 50, 0), GraphicsSystem.SpriteFont, Color.Black); var pointsCounterPosition = Vector2.Add(new Vector2(_gameField.Bounds.Right, _gameField.Bounds.Top), new Vector2(10, 0)); _pointsCounterComponent = new PointsCounterComponent(pointsCounterPosition, GraphicsSystem, _gamePoints); var remainingLivesPosition = Vector2.Add(new Vector2(_gameField.Bounds.Right, _gameField.Bounds.Top), new Vector2(10, 25)); _remainingLivesComponent = new RemainingLivesComponent(remainingLivesPosition, GraphicsSystem, _gamePoints); _debugInfoPanelComponent = new DebugInfoPanelComponent(GraphicsSystem, GameSettings, _gameManager); #endregion UI components }), Task.Delay(500) }; await Task.WhenAll(tasks.ToArray()); IsLoaded = true; }
public FoodController(IMapper mapper, IFoodManager manager, IFoodRepository repository) { _mapper = mapper; _manager = manager; _repository = repository; }
public FoodLogic(IGameLogic game, ITimeLogic timer, ICollisionLogic collider, IFoodManager foodManager) { _timer = timer; _game = game; _foodManager = foodManager; collider.onCollision += onCollision; }