コード例 #1
0
        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));
                }
            }
        }