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); }
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); } }