/* OBIETTIVO VISIVO:
Un paesaggio urbano notturno interattivo. L’obiettivo è rappresentare una città che cambia atmosfera in base alla posizione del mouse: dal giorno al tramonto fino alla notte. Il cielo è dinamico, le stelle appaiono gradualmente e gli
edifici hanno finestre che si accendono e si spengono in modo realistico.
SCOMPOSIZIONE LOGICA:
- Background: Ho creato la funzione “drawSky()” che disegna un gradiente verticale riga per riga. Il colore cambia in base alla posizione del mouseY, utilizzando map() e lerpColor() per passare da giorno > tramonto > notte.
- Stelle: Nel setup genero le stelle salvando le loro coordinate in un array. Nel draw vengono disegnate con opacità variabile: appaiono solo di notte (valore del mouse alto) + ho aggiunto una leggera variazione random per simulare un effetto di “scintillio”.
- Luna: La funzione “drawMoon()” disegna la luna con un alone. La sua posizione verticale dipende dal mouseY. Uso push() e pop() per isolare le trasformazioni.
- Città: Gli edifici sono generati con la funzione
“creaEdifici()”, che chiama una funzione modulare “creaEdificio()”. Ogni edificio contiene un array di finestre con proprietà (posizione, stato, luminosità). - Finestre: Ogni finestra ha un timer e un target di luminosità. La funzione “aggiornaFinestre()” gestisce il cambio graduale di stato tramite
lerp(), mentre “disegnaFinestre()” le disegna con colori diversi.
USO AI:
Ho utilizzato l’AI principalmente come supporto nella costruzione degli edifici, in particolare per capire come gestire la profondità visiva. Ho chiesto come variare luminosità e colori in base a un parametro di “depth”, sia per gli edifici che per le finestre, in modo da rendere quelli più lontani più scuri e meno luminosi. Questo mi ha aiutato anche a strutturare meglio il codice e a gestire le finestre come elementi indipendenti con comportamenti dinamici.
*/

Lascia un commento
Devi essere connesso per inviare un commento.