2026-06-13 리듬게임 프로토타입
This commit is contained in:
59
Assets/02_Scripts/Rhythm/RhythmScore.cs
Normal file
59
Assets/02_Scripts/Rhythm/RhythmScore.cs
Normal file
@@ -0,0 +1,59 @@
|
||||
// 리듬게임 점수/콤보/판정수 누적 (Unity 비의존 순수 로직 - 테스트하기 쉬움)
|
||||
public class RhythmScore
|
||||
{
|
||||
// 판정별 기본 점수
|
||||
private const int PerfectPoint = 100;
|
||||
private const int GoodPoint = 50;
|
||||
private const int BadPoint = 10;
|
||||
|
||||
public int Score { get; private set; }
|
||||
public int Combo { get; private set; }
|
||||
public int MaxCombo { get; private set; }
|
||||
|
||||
public int PerfectCount { get; private set; }
|
||||
public int GoodCount { get; private set; }
|
||||
public int BadCount { get; private set; }
|
||||
public int MissCount { get; private set; }
|
||||
|
||||
public int TotalJudged => PerfectCount + GoodCount + BadCount + MissCount;
|
||||
|
||||
// 판정 하나를 점수에 반영
|
||||
public void Apply(Result result)
|
||||
{
|
||||
switch (result)
|
||||
{
|
||||
case Result.Perfect:
|
||||
PerfectCount++;
|
||||
Combo++;
|
||||
Score += PerfectPoint + Combo; // 콤보가 쌓일수록 보너스 (연속 보상)
|
||||
break;
|
||||
case Result.Good:
|
||||
GoodCount++;
|
||||
Combo++;
|
||||
Score += GoodPoint + Combo;
|
||||
break;
|
||||
case Result.Bad:
|
||||
BadCount++;
|
||||
Combo = 0; // 콤보 끊김
|
||||
Score += BadPoint;
|
||||
break;
|
||||
case Result.Miss:
|
||||
MissCount++;
|
||||
Combo = 0; // 콤보 끊김
|
||||
break;
|
||||
}
|
||||
|
||||
if (Combo > MaxCombo) MaxCombo = Combo;
|
||||
}
|
||||
|
||||
public void Reset()
|
||||
{
|
||||
Score = 0;
|
||||
Combo = 0;
|
||||
MaxCombo = 0;
|
||||
PerfectCount = 0;
|
||||
GoodCount = 0;
|
||||
BadCount = 0;
|
||||
MissCount = 0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user