Beispiel #1
0
        public void Animate(HitExplosionEntry entry)
        {
            Colour = entry.ObjectColour;

            using (BeginAbsoluteSequence(entry.LifetimeStart))
            {
                float halfCatchWidth  = catcher.CatchWidth / 2;
                float explosionOffset = Math.Clamp(entry.Position, -halfCatchWidth + catch_margin * 3, halfCatchWidth - catch_margin * 3);

                if (!(entry.HitObject is Droplet))
                {
                    float scale = Math.Clamp(entry.JudgementResult.ComboAtJudgement / 200f, 0.35f, 1.125f);

                    explosion1.Scale    = new Vector2(1, 0.9f);
                    explosion1.Position = new Vector2(explosionOffset, 0);

                    explosion1.FadeOutFromOne(300);
                    explosion1.ScaleTo(new Vector2(16 * scale, 1.1f), 160, Easing.Out);
                }

                explosion2.Scale    = new Vector2(0.9f, 1);
                explosion2.Position = new Vector2(explosionOffset, 0);

                explosion2.FadeOutFromOne(700);
                explosion2.ScaleTo(new Vector2(0.9f, 1.3f), 500, Easing.Out);

                this.Delay(700).FadeOutFromOne();
            }
        }
Beispiel #2
0
        public void Animate(HitExplosionEntry entry)
        {
            X     = entry.Position;
            Scale = new Vector2(entry.HitObject.Scale);
            setColour(entry.ObjectColour);

            using (BeginAbsoluteSequence(entry.LifetimeStart))
                applyTransforms(entry.HitObject.RandomSeed);
        }