Exemple #1
0
            public FallingCharacterAnimator(char Character, Font fontuse, PointF pPosition, PointF pVelocity, Brush UseBrush, Pen usePen, RectangleF pbounds)
            {
                Position  = pPosition;
                Velocity  = pVelocity;
                usebounds = pbounds;
                SizeF LetterSize = BCBlockGameState.MeasureString(Character.ToString(), fontuse);

                //create letter bitmap...
                DrawBitmap = new Bitmap((int)LetterSize.Width, (int)LetterSize.Height);
                //create the canvas, and draw the character on it.
                DrawCanvas = Graphics.FromImage(DrawBitmap);
                //draw; use a path.
                drawletterpath = new GraphicsPath();
                drawletterpath.AddString(Character.ToString(), fontuse.FontFamily, (int)fontuse.Style,
                                         fontuse.Size, new Point(0, 0), StringFormat.GenericDefault);
                //paint that graphics path onto the bitmap...
                DrawCanvas.FillPath(UseBrush, drawletterpath);
                DrawCanvas.DrawPath(usePen, drawletterpath);
            }
Exemple #2
0
        public FallingTextAnimator(String DisplayString, Font fontuse, PointF Position, Brush useBrush, Pen usePen, PointF pGravity, RectangleF pBounds)
        {
            useBounds = pBounds;
            Gravity   = pGravity;
            String BuildString     = "";
            float  currtextwidth   = 0;
            PointF currentPosition = Position;

            foreach (Char loopchar in DisplayString)
            {
                PointF useVelocity             = new PointF(0, (float)rgen.NextDouble() * 3);
                FallingCharacterAnimator Addme = new FallingCharacterAnimator(loopchar, fontuse, currentPosition,
                                                                              useVelocity, useBrush, usePen,
                                                                              useBounds);
                FallingCharacters.Add(Addme);
                currentPosition = new PointF(Position.X + currtextwidth, Position.Y);
                BuildString    += loopchar;
                int currlength = BuildString.Length;
                currtextwidth += (BCBlockGameState.MeasureString(loopchar.ToString(), fontuse).Width / currlength);
            }
        }