//Skrevet av Ketil Almquist public void obstacleCollision(SolidObstacle o) { if (intersects(o.obstacle)) { if ((o.obstacle.Left <= Position.X && Position.X <= o.obstacle.Right)) { if (Math.Abs(Position.Y - o.obstacle.Top) < Math.Abs(Position.Y - o.obstacle.Bottom)) { position.Y = o.obstacle.Top - radius; } else {position.Y = o.obstacle.Bottom + radius; } Velocity *= new Vector2(1, -1); } else if ((o.obstacle.Top <= Position.Y && Position.Y <= o.obstacle.Bottom)) { if (Math.Abs(Position.X - o.obstacle.Left) < Math.Abs(Position.X - o.obstacle.Right)) { position.X = o.obstacle.Left - radius; } else { position.X = o.obstacle.Right + radius; } Velocity *= new Vector2(-1, 1); } } }