A simple arcade game written in Python using Pygame.
Click on the red squares to score points, avoid missing them, and collect special squares for bonuses.
- Combo System: Multiplier for consecutive hits within time limit
- Special Squares:
- Healing squares (blue) to restore lives
- Slow-time squares (cyan) to temporarily slow the game
- Dynamic Difficulty: Faster spawns and moving squares as score increases
- Highscore: Persistent local save
- Modern Menu System: Animated background with falling squares, gradient backdrop, smooth hover effects
- Settings Menu: Tabbed interface (Audio/Video/Controls) with live preview
- Audio: Master toggle, Effects/Music volume control (0-100%)
- Video: Window mode, Resolution selection, V-Sync toggle
- Controls: Mouse sensitivity (0-100), Invert Y-Axis option
- Shared UI Components: Consistent button styling with hover/click sound effects
- Keyboard Navigation: Full menu support (arrows/WASD + Enter/Space)
- Python 3.10+
- Pygame 2.5.0+
-
Clone the repository:
git clone https://github.com/<your-username>/squarepy.git cd squarepy
-
Install the package (editable mode):
pip install -e .
After installation, run the game using:
squaregameOr alternatively, without installation:
PYTHONPATH=src python -m squaregame- Left Mouse Button - Click squares to score points
- ESC - Pause / Resume game
- Arrow Keys (โ/โ) or W/S - Navigate menu buttons
- Enter or Space - Activate selected button
- Mouse - Hover and click buttons directly
- Audio Tab:
- Master Audio: Toggle sound effects on/off
- Effects Volume: 0-100% (step 10%)
- Music Volume: 0-100% (step 10%)
- Video Tab:
- Window Mode: Fullscreen/Windowed
- Resolution: Multiple presets available
- V-Sync: Toggle vertical sync
- Controls Tab:
- Mouse Sensitivity: 0-100 (step 10)
- Invert Y-Axis: Toggle inverted mouse movement
- Save - Persist changes to
settings.json - Cancel - Discard changes and return to menu
If debug_mode is enabled in settings.json:
- F3 - Toggle debug overlay (FPS, spawn rate, combo, lives, god mode status)
- ~ (tilde) - Toggle god mode (infinite lives)
- F9-F12 - Additional developer shortcuts
