feat: implement complete score tracking system
- Track score (starts at 0) - +1 score and +1 correct for each correct character typed - -1 score and +1 missed for each wrong character typed - +1 deaths for each collision with ship - Score resets when game starts - All metrics exposed through ScoreManager - Updated example app UI with colorful scoreboard showing: - Time (gray) - Score (neutral) - Correct (green) - Missed (yellow) - Deaths (red) - Keystrokes (neutral) - Uses grid layout for organized metric display - Score cannot go below 0 (clamped to minimum)
This commit is contained in:
+11
-2
@@ -82,6 +82,10 @@ export type CursorManager = {
|
||||
export type ScoreManager = {
|
||||
timeValue: number;
|
||||
totalKeystrokes: number;
|
||||
score: number;
|
||||
correct: number;
|
||||
missed: number;
|
||||
deaths: number;
|
||||
};
|
||||
|
||||
// ============================================================================
|
||||
@@ -94,13 +98,18 @@ export type GameStatusManager = {
|
||||
startGame: () => void;
|
||||
quitGame: () => void;
|
||||
level: number;
|
||||
score: number;
|
||||
togglePause: () => void;
|
||||
shipState: ShipState;
|
||||
shipExplosionTime: number;
|
||||
updatePlayerX: (x: number) => void;
|
||||
handleTypedLetter: (letter: string) => void;
|
||||
setGameLoopCallback: (callback: (deltaTime: number, letters: FallingLetter[]) => void) => void;
|
||||
addCorrect: () => void;
|
||||
addMissed: () => void;
|
||||
addDeath: () => void;
|
||||
score: number;
|
||||
correct: number;
|
||||
missed: number;
|
||||
deaths: number;
|
||||
};
|
||||
|
||||
// ============================================================================
|
||||
|
||||
Reference in New Issue
Block a user