public void Handle(PaddleMoved message) { var paddle = _level.Paddle; var walls = _level.Walls; if (walls.Any(wall => paddle.Boundings.Intersects(wall.Boundings))) { var wall = walls.First(w => paddle.Boundings.Intersects(w.Boundings)); var paddleBoundingsLastFrame = new Rectangle.Rectangle(paddle.Boundings.X - paddle.Velocity.X, paddle.Boundings.Y - paddle.Velocity.Y, paddle.Boundings.Width, paddle.Boundings.Height); var collisionPenetration = CollisionPenetration(wall.Boundings, paddle.Boundings, paddleBoundingsLastFrame); paddle.Position -= collisionPenetration.Depth; paddle.Velocity = Vector2.Zero; } }
public void Init() { _target = new Rectangle.Rectangle(2, 3); }