Esempio n. 1
0
 public DialogParams Transform(DialogParams par, TextCursorPosition pos)
 {
     par = TransformShow(par, pos, ShowSlider.GetSlide(pos));
     par = TransformHighlight(par, pos, HighlightSlider.GetSlide(pos));
     par = TransformHide(par, pos, HideSlider.GetSlide(pos));
     return(par);
 }
Esempio n. 2
0
 public DialogParams(DialogParams param)
 {
     Color  = param.Color;
     Border = param.Border;
     Offset = param.Offset;
     Scale  = param.Scale;
     Angle  = param.Angle;
 }
Esempio n. 3
0
 private static DialogParams TransformHide(DialogParams param, TextCursorPosition pos, float slide)
 {
     if (slide >= 1)
     {
         param.Color  = Color.Transparent;
         param.Border = Color.Transparent;
     }
     return(param);
 }
Esempio n. 4
0
 private static DialogParams Transform(DialogParams param, TextCursorPosition pos, float slide)
 {
     if (slide <= 0)
     {
         param.Color  = Color.Transparent;
         param.Border = Color.Transparent;
     }
     param.Scale = Vector2.Lerp(new Vector2(3, 3), Vector2.One, slide);
     return(param);
 }
Esempio n. 5
0
        public void DrawChar(char chr, Vector2 drawpos, TextFormatting format, DialogParams param)
        {
            Texture2D tex = Game.FontSprites[chr / FontUtil.CharsPerPage].Texture;

            int index  = chr % FontUtil.CharsPerPage;
            int offset = FontUtil.GetCharOffset(chr);
            int width  = FontUtil.GetCharWidth(chr);

            var color        = param.Color;
            var border       = param.Border;
            var charOffset   = param.Offset;
            var charScale    = param.Scale;
            var charAngle    = param.Angle;
            var bold         = format.Bold;
            var scriptOffset = 0;

            //DrawCharLine(drawpos + charOffset + new Vector2(0, 15), width + 1 + (bold ? 1 : 0), color, border);
            //DrawCharLine(drawpos + charOffset + new Vector2(0, 2), width + 1 + (bold ? 1 : 0), color, border);

            var rect   = FontUtil.GetCharRect(index);
            var middle = FontUtil.GetCharMiddle(index);

            if (border.A > 0)
            { //Only draw outline if it's actually non-transparent
                Scene.SpriteBatch.Draw(tex, drawpos + charOffset + new Vector2(-offset - 1, scriptOffset + 0) + middle, rect, border, charAngle, middle, charScale, SpriteEffects.None, 0);
                Scene.SpriteBatch.Draw(tex, drawpos + charOffset + new Vector2(-offset, scriptOffset + 1) + middle, rect, border, charAngle, middle, charScale, SpriteEffects.None, 0);
                Scene.SpriteBatch.Draw(tex, drawpos + charOffset + new Vector2(-offset, scriptOffset - 1) + middle, rect, border, charAngle, middle, charScale, SpriteEffects.None, 0);
                if (bold)
                {
                    Scene.SpriteBatch.Draw(tex, drawpos + charOffset + new Vector2(-offset + 2, scriptOffset + 0) + middle, rect, border, charAngle, middle, charScale, SpriteEffects.None, 0);
                    Scene.SpriteBatch.Draw(tex, drawpos + charOffset + new Vector2(-offset + 1, scriptOffset + 1) + middle, rect, border, charAngle, middle, charScale, SpriteEffects.None, 0);
                    Scene.SpriteBatch.Draw(tex, drawpos + charOffset + new Vector2(-offset + 1, scriptOffset - 1) + middle, rect, border, charAngle, middle, charScale, SpriteEffects.None, 0);
                }
                else
                {
                    Scene.SpriteBatch.Draw(tex, drawpos + charOffset + new Vector2(-offset + 1, scriptOffset) + middle, rect, border, charAngle, middle, charScale, SpriteEffects.None, 0);
                }
            }

            Scene.SpriteBatch.Draw(tex, drawpos + charOffset + new Vector2(-offset, scriptOffset) + middle, rect, color, charAngle, middle, charScale, SpriteEffects.None, 0);
            if (bold)
            {
                Scene.SpriteBatch.Draw(tex, drawpos + charOffset + new Vector2(-offset + 1, scriptOffset) + middle, rect, color, charAngle, middle, charScale, SpriteEffects.None, 0);
            }

            //if(charOffset == Vector2.Zero)
            //    DrawCharLine(drawpos + charOffset + new Vector2(-1, 8), width + 2 + (bold ? 1 : 0), color, border);
        }
Esempio n. 6
0
 private static DialogParams Transform(DialogParams param, TextCursorPosition pos, float slide)
 {
     if (slide <= 0)
     {
         param.Color  = Color.Transparent;
         param.Border = Color.Transparent;
     }
     else
     {
         float angle = Util.RandomNoise(pos.GlobalCharacter) * MathHelper.TwoPi;
         param.Offset = Vector2.Lerp(Util.AngleToVector(angle) * 20, Vector2.Zero, MathHelper.Clamp(slide * 2, 0, 1));
         param.Scale  = Vector2.Lerp(new Vector2(3, 3), Vector2.One, MathHelper.Clamp(slide * 2, 0, 1));
         param.Border = Color.Lerp(Color.Orange.RotateHue(pos.GlobalCharacter / 20f), Color.Black, slide);
     }
     return(param);
 }
Esempio n. 7
0
 private DialogParams TransformShow(DialogParams param, TextCursorPosition pos, float slide)
 {
     if (slide <= 0)
     {
         //param.Color = Color.Transparent;
         //param.Border = Color.Transparent;
     }
     else
     {
         float angle = Util.RandomNoise(pos.GlobalCharacter) * MathHelper.TwoPi;
         //param.Offset = Vector2.Lerp(Util.AngleToVector(angle) * 20, Vector2.Zero, MathHelper.Clamp(slide * 2, 0, 1));
         //param.Scale = Vector2.Lerp(new Vector2(3, 3), Vector2.One, MathHelper.Clamp(slide * 2, 0, 1));
         var colorSlide = (float)LerpHelper.ForwardReverse(1, 0, slide);
         param.Border = Color.Lerp(Color.Gold, Color.Black, colorSlide);
     }
     param.Offset = Vector2.Lerp(-pos.Position, Vector2.Zero, (float)LerpHelper.QuadraticOut(0, 1, AppearSlide.Slide));
     return(param);
 }
Esempio n. 8
0
        public override void DrawIcon(Scene scene, Vector2 pos, DialogParams parameters, float slide)
        {
            int amount = (int)Math.Round(slide * Sprite.Height);

            if (amount < 0)
            {
                amount = 0;
            }
            if (amount > Sprite.Height)
            {
                amount = Sprite.Height;
            }
            if (amount <= 0 && slide > 0)
            {
                amount = 1;
            }
            scene.SpriteBatch.Draw(Sprite.Texture, pos, new Rectangle(Sprite.Width * 1, 0, Sprite.Width, Sprite.Height), Color.White);
            scene.SpriteBatch.Draw(Sprite.Texture, pos + new Vector2(0, Sprite.Height - amount), new Rectangle(Sprite.Width * 0, Sprite.Height - amount, Sprite.Width, amount), Color.White);
        }
Esempio n. 9
0
 public static DialogParams TransformIdentity(DialogParams param, TextCursorPosition pos, float slide) => param;
Esempio n. 10
0
 public override void DrawIcon(Scene scene, Vector2 pos, DialogParams parameters, float slide)
 {
     scene.DrawSpriteExt(Sprite, 0, pos, Sprite.Middle, 0, Vector2.One, Microsoft.Xna.Framework.Graphics.SpriteEffects.None, parameters.Color, 0);
 }
Esempio n. 11
0
 public virtual void DrawIcon(Scene scene, Vector2 pos, DialogParams parameters, float slide)
 {
     scene.DrawSprite(Sprite, 0, pos, Microsoft.Xna.Framework.Graphics.SpriteEffects.None, 0);
 }