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