JuggleBoard game v0.1: Godot 4.7 arcade, combo decay, config menu, circus BGM
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
# JuggleBoard Game
|
||||
|
||||
Un gioco arcade **reaction & chaining** per dispositivi mobili (orizzontale), realizzato in **Godot 4.7** (GDScript), ispirato al prodotto riabilitativo "Juggle Board".
|
||||
|
||||
## Gameplay
|
||||
- **5 corsie orizzontali**, ognuna con una **pallina colorata** a riposo sul lato destro.
|
||||
- Un **bersaglio in alto** indica quale pallina toccare.
|
||||
- Toccando la pallina giusta: scivola a sinistra e poi torna a destra, con un **suono di conferma**.
|
||||
- Un nuovo bersaglio appare **solo se c'è almeno una pallina a riposo**.
|
||||
- Devi concatenare i lanci **prima che scada il timeout**: più concateni, più punti (combo).
|
||||
- **Difficoltà crescente**: il tempo parte molto disteso (~4,5s) e **si riduce** con il tempo trascorso e il punteggio.
|
||||
- **Tap sbagliato** → suono di errore e reset combo (nessun game over).
|
||||
- **Combo con decadimento**: il combo cresce con i tap rapidi ma **si riduce pian piano** in proporzione al tempo che aspetti prima di cliccare la pallina bersaglio (rate configurabile `COMBO_DECAY`).
|
||||
- **Timeout scaduto** → suono dedicato, reset combo, nuovo bersaglio (nessun game over).
|
||||
- I suoni (lancio, errore, timeout) sono generati proceduralmente in 8-bit.
|
||||
|
||||
## Requisiti
|
||||
- Godot 4.x (sviluppato e testato con 4.7.1, renderer GL Compatibility).
|
||||
|
||||
## Eseguire
|
||||
```bash
|
||||
# dal percorso del progetto
|
||||
godot --path .
|
||||
```
|
||||
Oppure apri il progetto con l'editor Godot (`godot -e .`) e premi **Play** (F5).
|
||||
|
||||
## Controlli
|
||||
- **Desktop**: click del mouse sulla pallina.
|
||||
- **Mobile**: tocco sullo schermo.
|
||||
|
||||
## Struttura
|
||||
```
|
||||
project.godot # configurazione (viewport 1280x720, landscape, GL Compatibility)
|
||||
icon.svg
|
||||
scenes/
|
||||
main.tscn # scena principale (radice Node2D + script)
|
||||
scripts/
|
||||
main.gd # logica di gioco, HUD, punteggio, difficoltà
|
||||
ball.gd # pallina: Area2D, scivolata sinistra↔destra, input
|
||||
target_dot.gd # indicatore del colore bersaglio
|
||||
```
|
||||
|
||||
## Personalizzare la difficoltà
|
||||
In `scripts/main.gd` (sezione "Tuning difficoltà"):
|
||||
- `START_TIME` → tempo iniziale tra un ordine e l'altro (s). Più alto = partenza più distesa.
|
||||
- `MIN_TIME` → tempo minimo (velocità massima) raggiunto a difficoltà piena.
|
||||
- `TIME_RAMP` → secondi di gioco per raggiungere la difficoltà piena.
|
||||
- `SCORE_RAMP` → punteggio per raggiungere la difficoltà piena.
|
||||
|
||||
La difficoltà cresce col massimo tra il fattore-tempo e il fattore-punteggio.
|
||||
|
||||
## Esportazione mobile
|
||||
Installa dal Project Manager il template **Android** (o iOS su macOS), poi
|
||||
*Project → Export* con preset `Android` / `Web`.
|
||||
Reference in New Issue
Block a user