示例#1
0
 public void DrawDropShadow(Camera2D camera)
 {
     if (base.Visible)
     {
         if (base.Parent == null || base.OverrideParentScale)
         {
             camera.DrawString(this.m_font, this.m_text, base.AbsPosition + this.DropShadow, Color.Black * base.Opacity, MathHelper.ToRadians(base.Rotation), this.Anchor, this.Scale * this.m_internalFontSizeScale, SpriteEffects.None, base.Layer);
             return;
         }
         camera.DrawString(this.m_font, this.m_text, base.AbsPosition + this.DropShadow, Color.Black * base.Opacity, MathHelper.ToRadians(base.Parent.Rotation + base.Rotation), this.Anchor, base.Parent.Scale * this.Scale * this.m_internalFontSizeScale, SpriteEffects.None, base.Layer);
     }
 }
示例#2
0
 public override void Draw(Camera2D camera)
 {
     if (this.m_textureValue.IsDisposed)
     {
         this.m_font = SpriteFontArray.SpriteFontList[this.m_fontIndex];
     }
     if (this.IsTypewriting && this.m_typewriteCounter > 0f && !this.IsPaused)
     {
         TextObj  totalSeconds      = this;
         float    mTypewriteCounter = totalSeconds.m_typewriteCounter;
         TimeSpan elapsedGameTime   = camera.GameTime.ElapsedGameTime;
         totalSeconds.m_typewriteCounter = mTypewriteCounter - (float)elapsedGameTime.TotalSeconds;
         if (this.m_typewriteCounter <= 0f && this.Text != this.m_typewriteText)
         {
             if (this.m_tapSFX != "")
             {
                 SoundManager.PlaySound(this.m_tapSFX);
             }
             this.m_typewriteCounter = this.m_typewriteSpeed;
             this.m_typewriteCharLength++;
             this.Text = this.m_typewriteText.Substring(0, this.m_typewriteCharLength);
         }
     }
     if (this.IsTypewriting && this.Text == this.m_typewriteText)
     {
         this.m_isTypewriting = false;
     }
     if (this.DropShadow != Vector2.Zero)
     {
         this.DrawDropShadow(camera);
     }
     if (this.OutlineWidth > 0 && (base.Parent == null || base.Parent.OutlineWidth == 0))
     {
         this.DrawOutline(camera);
     }
     if (base.Visible)
     {
         if (base.Parent == null || base.OverrideParentScale)
         {
             camera.DrawString(this.m_font, this.m_text, base.AbsPosition, base.TextureColor * base.Opacity, MathHelper.ToRadians(base.Rotation), this.Anchor, this.Scale * this.m_internalFontSizeScale, SpriteEffects.None, base.Layer);
             return;
         }
         camera.DrawString(this.m_font, this.m_text, base.AbsPosition, base.TextureColor * base.Opacity, MathHelper.ToRadians(base.Parent.Rotation + base.Rotation), this.Anchor, base.Parent.Scale * this.Scale * this.m_internalFontSizeScale, SpriteEffects.None, base.Layer);
     }
 }
示例#3
0
        public override void DrawOutline(Camera2D camera)
        {
            if (this.m_textureValue.IsDisposed)
            {
                this.m_font = SpriteFontArray.SpriteFontList[this.m_fontIndex];
            }
            int outlineWidth = this.OutlineWidth;

            if (this.m_font != null && base.Visible)
            {
                Vector2       absPosition   = base.AbsPosition;
                float         x             = absPosition.X;
                float         y             = absPosition.Y;
                SpriteEffects flip          = this.Flip;
                float         radians       = MathHelper.ToRadians(base.Rotation);
                Color         outlineColour = this.OutlineColour * base.Opacity;
                Vector2       anchor        = this.Anchor;
                float         layer         = base.Layer;
                Vector2       scale         = this.Scale * this.m_internalFontSizeScale;
                if (base.Parent == null || base.OverrideParentScale)
                {
                    camera.DrawString(this.m_font, this.m_text, new Vector2(x - (float)outlineWidth, y), outlineColour, radians, anchor, scale, flip, layer);
                    camera.DrawString(this.m_font, this.m_text, new Vector2(x + (float)outlineWidth, y), outlineColour, radians, anchor, scale, flip, layer);
                    camera.DrawString(this.m_font, this.m_text, new Vector2(x, y - (float)outlineWidth), outlineColour, radians, anchor, scale, flip, layer);
                    camera.DrawString(this.m_font, this.m_text, new Vector2(x, y + (float)outlineWidth), outlineColour, radians, anchor, scale, flip, layer);
                    if (!this.LimitCorners)
                    {
                        camera.DrawString(this.m_font, this.m_text, new Vector2(x - (float)outlineWidth, y - (float)outlineWidth), outlineColour, radians, anchor, scale, flip, layer);
                        camera.DrawString(this.m_font, this.m_text, new Vector2(x + (float)outlineWidth, y + (float)outlineWidth), outlineColour, radians, anchor, scale, flip, layer);
                        camera.DrawString(this.m_font, this.m_text, new Vector2(x + (float)outlineWidth, y - (float)outlineWidth), outlineColour, radians, anchor, scale, flip, layer);
                        camera.DrawString(this.m_font, this.m_text, new Vector2(x - (float)outlineWidth, y + (float)outlineWidth), outlineColour, radians, anchor, scale, flip, layer);
                        return;
                    }
                }
                else
                {
                    Vector2 vector2 = (base.Parent.Scale * this.Scale) * this.m_internalFontSizeScale;
                    radians = MathHelper.ToRadians(base.Parent.Rotation + base.Rotation);
                    camera.DrawString(this.m_font, this.m_text, new Vector2(x - (float)outlineWidth, y), outlineColour, radians, anchor, vector2, flip, layer);
                    camera.DrawString(this.m_font, this.m_text, new Vector2(x + (float)outlineWidth, y), outlineColour, radians, anchor, vector2, flip, layer);
                    camera.DrawString(this.m_font, this.m_text, new Vector2(x, y - (float)outlineWidth), outlineColour, radians, anchor, vector2, flip, layer);
                    camera.DrawString(this.m_font, this.m_text, new Vector2(x, y + (float)outlineWidth), outlineColour, radians, anchor, vector2, flip, layer);
                    if (!this.LimitCorners)
                    {
                        camera.DrawString(this.m_font, this.m_text, new Vector2(x - (float)outlineWidth, y - (float)outlineWidth), outlineColour, radians, anchor, vector2, flip, layer);
                        camera.DrawString(this.m_font, this.m_text, new Vector2(x + (float)outlineWidth, y + (float)outlineWidth), outlineColour, radians, anchor, vector2, flip, layer);
                        camera.DrawString(this.m_font, this.m_text, new Vector2(x + (float)outlineWidth, y - (float)outlineWidth), outlineColour, radians, anchor, vector2, flip, layer);
                        camera.DrawString(this.m_font, this.m_text, new Vector2(x - (float)outlineWidth, y + (float)outlineWidth), outlineColour, radians, anchor, vector2, flip, layer);
                    }
                }
            }
        }