예제 #1
0
파일: Score.cs 프로젝트: pauzii/IGD2021
 public void SpecialHit(HitQuality points)
 {
     specialSound.Play();
     if (specialMultiplier <= multiplierThresholds.Length)
     {
         specialMultiplier++;
     }
     Hit(points);
 }
예제 #2
0
        private void updateHitQuality()
        {
            if (!collision)
            {
                hitQuality = HitQuality.NULL;
                return;
            }

            float x = Mathf.Abs(transform.position.x - collisionObject.transform.position.x);

            if (x > 0.03)
            {
                hitQuality = HitQuality.NORMAL;
            }
            else if (x > 0.02)
            {
                hitQuality = HitQuality.GOOD;
            }
            else if (x <= 0.01)
            {
                hitQuality = HitQuality.PERFECT;
            }
        }
예제 #3
0
파일: Score.cs 프로젝트: pauzii/IGD2021
        public void Hit(HitQuality points)
        {
            switch (points)
            {
            case HitQuality.NORMAL:
                break;

            case HitQuality.GOOD:
                spawnEffect(goodEffect, new Color(0.8f, 0.8f, 0.15f));
                break;

            case HitQuality.PERFECT:
                particles.Play();
                spawnEffect(perfectEffect, new Color(1f, 1f, 0.2f));
                break;
            }
            hitStreak++;
            if (multiplier <= multiplierThresholds.Length && hitStreak >= multiplierThresholds[multiplier - 1])
            {
                multiplier++;
            }

            score += multiplier * (int)points + specialMultiplier * (int)points;
        }