public PlayerControl(Player player, int gameWidth)
     : base(player)
 {
     _gameWidth = gameWidth;
     InitializeComponent();
     player.Location.PropertyChanged += Location_PropertyChanged;
     _lastLocation = player.Location.Clone();
 }
Example #2
0
        public CollisionEvent HandeInput(Vector direction)
        {
            foreach (var raindrop in _raindrops)
            {
                _gameController.Move(new MoveCommand(raindrop, Vector.Down));
            }
            var collisionEvent = _gameController.Move(new MoveCommand(_player, direction));

            return(collisionEvent);
        }
Example #3
0
        public void AddRaindrop()
        {
            var gameSize      = new Vector(GameWidth, GameHeight);
            var startLocation = Raindrop.GetValidStartLocation(gameSize, RandomNumberGenerator.Instance);
            var raindrop      = new Raindrop(startLocation);

            while (_gameController.TryAdd(raindrop) != null)
            {
                //A collision occured. Try add it somewhere new
                startLocation = Raindrop.GetValidStartLocation(gameSize, RandomNumberGenerator.Instance);
                raindrop      = new Raindrop(startLocation);
            }
            _raindrops.Add(raindrop);
            GameObjects.Add(new RaindropControl(raindrop));
        }
        private void Location_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            var newLocation = (Vector)sender;
            var direction   = (newLocation - _lastLocation).X;

            if (OnOppositeSides(newLocation, _lastLocation))
            {
                FacingRight = direction <= 0;
            }
            else
            {
                FacingRight = direction >= 0;
            }
            GridWitchScaleX.ScaleX = FacingRight ? 1 : -1;
            _lastLocation          = newLocation.Clone();
        }
 private bool OnOppositeSides(Vector vector1, Vector vector2)
 {
     return((vector1.X == 0 && vector2.X == _gameWidth - 1) ||
            (vector2.X == 0 && vector1.X == _gameWidth - 1));
 }