/// <summary>
/// A value indicating whether the player intersects.
/// </summary>
/// <param name="player">The Player.</param>
/// <returns>True if intersecting.</returns>
public bool Intersects(Player player)
{
lock (_lockObj)
{
foreach (Pipe pipe in _pipes)
{
/*/var polygon1 = new Polygon();
polygon1.Add(new Vector2(pipe.Position.X, pipe.Position.Y),
new Vector2(pipe.Position.X + 44, pipe.Position.Y),
new Vector2(pipe.Position.X + 44, pipe.Position.Y + pipe.TopPipeHeight + 22),
new Vector2(pipe.Position.X, pipe.Position.Y + pipe.TopPipeHeight + 22));
var polygon2 = new Polygon();
polygon2.Add(new Vector2(pipe.Position.X, 480), new Vector2(pipe.Position.X + 44, 480),
new Vector2(pipe.Position.X + 44, pipe.BottomPipeY - 22),
new Vector2(pipe.Position.X, pipe.BottomPipeY - 22));
if (player.Bounds.Intersects(polygon1))
{
return true;
}
if (player.Bounds.Intersects(polygon2))
{
return true;
}/*/
var rect1 = new Rectangle(pipe.Position.X, pipe.Position.Y, 46, pipe.TopPipeHeight + 22);
var rect2 = new Rectangle(pipe.Position.X, pipe.BottomPipeY, 46, pipe.BottomPipeHeight);
var playerrect = new Rectangle(player.Position, new Vector2(32, 24));
if (playerrect.Intersects(rect1) || playerrect.Intersects(rect2))
{
return true;
}
}
}
return false;
}