Esempio n. 1
0
        // Description:	Given the current settings in the global setup dialog objects, creates
        //				the items to run the server with the current settings.
        public void DoSetup()
        {
            byte [,] colors = { { 255,   0,   0 }, {   0, 255,   0 }, {   0,   0, 255 },
                                { 255, 255,   0 }, { 255,   0, 255 }, {   0, 255, 255 },
                                {   0, 128, 255 }, {   0, 255, 128 }, { 255,   0, 128 },
                                { 128,   0, 255 }, { 255, 128,   0 }, { 128, 255,   0 } };

            if (graphics != null)
            {
                graphics.Dispose();
            }

            graphics = Graphics.FromHwnd((IntPtr)handle);
            Ball.SetWindow(graphics, setup);
            Ball.TheForm = form;

            /*
             * Figure out the size (& mass) distribution of the balls...
             */
            Distribute distribute = new Distribute(setup.sizeMin,
                                                   setup.sizeMax,
                                                   setup.distribution);

            balls = new Ball[setup.ballCount];
            float perColor = (float)setup.ballCount / (float)colors.GetLength(0);

            for (int index = 0; index < setup.ballCount; index++)
            {
                int color = (int)((float)index / perColor);
                balls[index] = new Ball(distribute.GetNextSize(),
                                        colors[color, 0],
                                        colors[color, 1],
                                        colors[color, 2]);
            }

            init       = true;
            cycleCount = 0;

            titleDraw = false;
            if (setup.strTitle == null)
            {
                return;
            }
            if (setup.strTitle == "")
            {
                return;
            }
            if (setup.strFont == null)
            {
                return;
            }

            if (titleBlock != null)
            {
                titleBlock.Dispose();
            }

            titleBlock =
                new TitleBlock(setup.strTitle,
                               setup.strFont,
                               setup.titleSize,
                               setup.fontColor,
                               form.Size,
                               graphics);

            titleDraw = true;

            // make sure the balls aren't inside...
            for (int index = 0; index < setup.ballCount; index++)
            {
                Ball ball = balls[index];

                while (titleBlock.IsInside(ball.Position, setup.sizeMax + titleBlock.TextPad))
                {
                    ball.RandLoc();
                }
            }
        }
Esempio n. 2
0
        // Description:	Given the current settings in the global setup dialog objects, creates
        //				the items to run the server with the current settings.
        public void DoSetup()
        {
            byte [,] colors = { { 255,   0,   0 }, {   0, 255,   0 }, {   0,   0, 255 },
                                { 255, 255,   0 }, { 255,   0, 255 }, {   0, 255, 255 },
                                {   0, 128, 255 }, {   0, 255, 128 }, { 255,   0, 128 },
                                { 128,   0, 255 }, { 255, 128,   0 }, { 128, 255,   0 } };

            if (graphics != null)
            {
                graphics.Dispose();
            }

            graphics = Graphics.FromHwnd((IntPtr)handle);
            Ball.SetWindow(graphics, setup);
            Ball.TheForm = form;

            /*
             * Figure out the size (& mass) distribution of the balls...
             */
            Distribute distribute = new Distribute(setup.sizeMin,
                                                   setup.sizeMax,
                                                   setup.distribution);

            balls = new Ball[setup.ballCount];
            float perColor = (float)setup.ballCount / (float)colors.GetLength(0);

            for (int index = 0; index < setup.ballCount; index++)
            {
                int color = (int)((float)index / perColor);
                balls[index] = new Ball(distribute.GetNextSize(),
                                        colors[color, 0],
                                        colors[color, 1],
                                        colors[color, 2]);
            }

            init       = true;
            cycleCount = 0;

            titleDraw = false;
            if (setup.strTitle == null)
            {
                return;
            }
            if (setup.strTitle == "")
            {
                return;
            }
            if (setup.strFont == null)
            {
                return;
            }

            titleDraw = true;
            //Console.WriteLine("{0} {1} {2}", setup.strTitle, setup.strFont, setup.titleSize);

            Font  font = new Font(setup.strFont, setup.titleSize);
            SizeF size = graphics.MeasureString(setup.strTitle, font);

            PointF location = new PointF(form.Size.Width / 2 - size.Width / 2,
                                         form.Size.Height / 2 - size.Height / 2);

            titleRectangle = new Rectangle(
                (int)(form.Size.Width / 2 - size.Width / 2),
                (int)(form.Size.Height / 2 - size.Height / 2),
                (int)size.Width,
                (int)size.Height);
            titleDrawSpot = new Point(titleRectangle.X, titleRectangle.Y);
            font.Dispose();
        }