feat: implement sentences mode with centered text and slower speed

- Set sentence fall speed to 25 pixels/second
- Replace sentences with longer, realistic ones including commas and punctuation
- Sentences always render centered on screen (80% max width constraint)
- Ship stays centered during sentence mode (no horizontal movement)
- Add punctuation support (. , ! ?) to keyboard input
- Disable auto-tracking for sentence/paragraph modes
This commit is contained in:
2025-11-04 17:00:20 +00:00
parent 68078e1ec7
commit 166ccd7783
5 changed files with 46 additions and 25 deletions
+13 -5
View File
@@ -18,7 +18,7 @@ export function useGame(
// Wrap renderBoard to include player position
const renderBoardWrapped = (letters: any = []) => {
boardManager.renderBoard(cursorManager.position(), letters, gameStatusManager.shipState, gameStatusManager.shipExplosionTime);
boardManager.renderBoard(cursorManager.position(), letters, gameStatusManager.shipState, gameStatusManager.shipExplosionTime, gameMode);
};
// Game loop tick handler
@@ -26,12 +26,20 @@ export function useGame(
const playerPos = cursorManager.position();
gameStatusManager.updatePlayerX(playerPos.x);
if (letters.length > 0) {
const letter = letters[0];
cursorManager.setTargetX(letter.x);
// For words/letters, auto-track to falling letters
// For sentences/paragraphs, keep ship centered
if (gameMode !== 'sentences' && gameMode !== 'paragraphs') {
if (letters.length > 0) {
const letter = letters[0];
cursorManager.setTargetX(letter.x);
}
cursorManager.moveTowardTarget(deltaTime);
} else {
// Keep ship centered for sentence/paragraph mode
cursorManager.setTargetX(400); // Canvas center
}
cursorManager.moveTowardTarget(deltaTime);
renderBoardWrapped(letters);
};