Пример #1
0
        private void RunScaleTo(ref ScaleTo scaleto)
        {
            var time     = scaleto.Time;
            var newscale = scaleto.NextScale;

            if (time == 0)
            {
                this.Scale      = newscale;
                scaleto.IsDone  = true;
                scaleto.IsDoing = false;
                return;
            }

            if (!scaleto.IsDoing)
            {
                scaleto.IsDoing = true;
                speedScale.X    = (newscale.X - Scale.X) / (time * 60);
                speedScale.Y    = (newscale.Y - Scale.Y) / (time * 60);

                scaleTotalValue.X = Math.Abs(newscale.X - Scale.X);
                scaleTotalValue.Y = Math.Abs(newscale.Y - Scale.Y);

                scaledValue = Vector2.Zero;
            }

            if (!scaleto.IsDone)
            {
                if ((scaleTotalValue.X >= scaledValue.X))
                {
                    if (Math.Abs(scaleTotalValue.X - scaledValue.X) < Math.Abs(speedScale.X))
                    {
                        Scale = new Vector2(newscale.X, Scale.Y);
                    }
                    else
                    {
                        Scale          = new Vector2(Scale.X + speedScale.X, Scale.Y);
                        scaledValue.X += Math.Abs(speedScale.X);
                    }
                }

                if (scaleTotalValue.Y >= scaledValue.Y)
                {
                    if (Math.Abs(scaleTotalValue.Y - scaledValue.Y) < Math.Abs(speedScale.Y))
                    {
                        Scale = new Vector2(Scale.X, newscale.Y);
                    }
                    else
                    {
                        Scale          = new Vector2(Scale.X, Scale.Y + speedScale.Y);
                        scaledValue.Y += Math.Abs(speedScale.Y);
                    }
                }

                if (Scale.X == newscale.X && Scale.Y == newscale.Y)
                {
                    scaleto.IsDone  = true;
                    scaleto.IsDoing = false;
                }
            }
        }
Пример #2
0
 public virtual void AddScaleTo(ScaleTo scaleto)
 {
     _scaleList.Add(scaleto);
 }
Пример #3
0
        private void RunScaleTo(ref ScaleTo scaleto)
        {
            var time = scaleto.Time;
            var newscale = scaleto.NextScale;

            if (time == 0)
            {
                this.Scale = newscale;
                scaleto.IsDone = true;
                scaleto.IsDoing = false;
                return;
            }

            if(!scaleto.IsDoing)
            {
                scaleto.IsDoing = true;
                speedScale.X = (newscale.X - Scale.X) / (time * 60);
                speedScale.Y = (newscale.Y - Scale.Y) / (time * 60);

                scaleTotalValue.X = Math.Abs(newscale.X - Scale.X);
                scaleTotalValue.Y = Math.Abs(newscale.Y - Scale.Y);

                scaledValue = Vector2.Zero;
            }

            if(!scaleto.IsDone)
            {
                if ((scaleTotalValue.X >= scaledValue.X))
                {
                    if (Math.Abs(scaleTotalValue.X - scaledValue.X) < Math.Abs(speedScale.X))
                    {
                        Scale = new Vector2(newscale.X, Scale.Y);
                    }
                    else
                    {
                        Scale = new Vector2(Scale.X + speedScale.X, Scale.Y);
                        scaledValue.X += Math.Abs(speedScale.X);
                    }

                }

                if (scaleTotalValue.Y >= scaledValue.Y)
                {
                    if (Math.Abs(scaleTotalValue.Y - scaledValue.Y) < Math.Abs(speedScale.Y))
                    {
                        Scale = new Vector2(Scale.X, newscale.Y);
                    }
                    else
                    {
                        Scale = new Vector2(Scale.X, Scale.Y + speedScale.Y);
                        scaledValue.Y += Math.Abs(speedScale.Y);
                    }

                }

                if (Scale.X == newscale.X && Scale.Y == newscale.Y)
                {
                     scaleto.IsDone = true;
                     scaleto.IsDoing = false;
                }
            }
        }
Пример #4
0
 public virtual void AddScaleTo(ScaleTo scaleto)
 {
     _scaleList.Add(scaleto);
 }
Пример #5
0
 public virtual void AddScaleTo(ScaleTo scaleto)
 {
     Sprite.AddScaleTo(scaleto);
 }
Пример #6
0
 public virtual void AddScaleTo(ScaleTo scaleto)
 {
     Sprite.AddScaleTo(scaleto);
 }