Beispiel #1
0
        public void Update(float deltaTime, bool trackButtonDown, bool previousTrackButtonDown)
        {
            if (disappearTimer == 1f)
            {
                Owner.Notes.Remove(this);
            }
            else if (Active)
            {
                var mostLikelyBeat = Owner.Notes.Where(n => n.Active).OrderBy(n => Math.Abs(TimeLeft)).FirstOrDefault();

                if (mostLikelyBeat == this)
                {
                    CheckHit(trackButtonDown, previousTrackButtonDown);
                }

                if (TimeLeft < -AbsoluteTimeLeniency)
                {
                    Owner.Break();
                    Destroy(false);
                }

                if (TimeLeft < 0.2f && !closeToEnd)
                {
                    closeToEnd = true;
                    vertOffset.Set(0f);
                }

                TimeLeft -= deltaTime;
            }

            vertOffset.Process(deltaTime);
            disappearTimer.Process(deltaTime);
        }
        public override void Update()
        {
            Velocity *= 0.95f;
            Rotation  = Velocity.ToRotation();
            Scale     = interpolatedScale;

            if (progress <= 0f)
            {
                Kill();
            }

            progress.Process(SpiritMod.deltaTime);
            interpolatedScale.Process(SpiritMod.deltaTime);
        }