private Vector2 GenerateNewPositionForFlower() { var entities = DrawList.FindAll(x => x is Obstacle).ToList(); int posX = 0, posY = 0; var flowerRectangle = new Rectangle(posX, posY, Globals.flowerTexture.Width, Globals.flowerTexture.Height); while (true) { posX = rnd.Next(24 + Globals.flowerTexture.Width, (int)Globals.screenSize.X - 24 - Globals.flowerTexture.Width); posY = rnd.Next(24 + Globals.flowerTexture.Height, (int)Globals.screenSize.Y - 24 - Globals.flowerTexture.Height); flowerRectangle = new Rectangle(new Point(posX, posY), flowerRectangle.Size); if (entities.All(x => !x.BoundingBox.Intersects(flowerRectangle))) { return(new Vector2(posX, posY)); } } }