OBIETTIVO VISIVO:
Lo sketch mostra un paesaggio composto da una pista da sci, attraversato da una funivia che sale, e le montagne sullo sfondo. Cliccando sulla canvas l’ambiente si trasforma da diurno a notturno: il cielo e il paesaggio si scuriscono, appaiono le stelle, la funivia si illumina dall’interno.
SCOMPOSIZIONE LOGICA:
- Setup e stato globale: in
setup()viene creata la canvas 400×400 e impostato il frameRate. Le variabili globali gestiscono lo stato dell’intera scena:isNight(booleano giorno/notte),scrollOffsetespeed(avanzamento e velocità dello scorrimento del paesaggio) eslope, calcolata come rapporto tra dislivello e larghezza della pista, in modo che il moto di traslazione segua la stessa inclinazione del disegno della pista. - Livello 1 – Sfondo: ad ogni frame
scrollOffsetviene incrementato. Il cielo è disegnato riga per riga con un cicloforche interpola (lerpColor) tra due colori scelti in base aisNight, ottenendo un gradiente verticale diverso per giorno e notte. Se è notte, un blocco condizionale aggiunge stelle fisse:randomSeed(42)garantisce che le posizioni casuali restino identiche ad ogni frame, evitando il tremolio. - Livello 2 – Nuvole: la funzione custom
nuvola()disegna una nuvola componendo cinque ellissi. Viene richiamata quattro volte conpush()/translate()/pop(), in modo da posizionarla in punti diversi della canvas senza dover ricalcolare le coordinate delle singole ellissi; il colore cambia (bianco/grigio) in base aisNight. - Livello 3 – Paesaggio scorrevole: la funzione custom
paesaggio(night)disegna montagne (triangoli su tre piani di profondità, con tonalità più scure e fredde di notte) e la pista da sci (poligono chiaro). Per creare lo scorrimento infinito, un ciclofor (i = -1; i <= 1)disegna tre copie affiancate del paesaggio, traslate didx(resto discrollOffsetdiviso il periodo) sia in x che in y (moltiplicando perslope), così il paesaggio scorre in diagonale rimanendo sempre coerente con l’inclinazione della pista, senza soluzione di continuità ai bordi. - Livello 5 – Figura (funivia): disegnata per ultima, sopra tutti gli altri livelli, e fissa rispetto alla canvas (rappresenta il punto di vista dell’osservatore a bordo). Il cavo è una semplice linea; la cabina è costruita con
beginShape()/vertex()per gli attacchi meccanici e con rettangoli per carrozza e finestre. I colori (rosso, azzurro, grigi) sono definiti tramite variabili condizionali suisNight, così la cabina risulta più scura e le finestre più “calde/illuminate” di notte rispetto al giorno. - Interattività:
mousePressed()inverte il valore diisNightad ogni click, propagando il cambiamento a tutti i livelli precedenti (cielo, nuvole, montagne, cabina) e trasformando istantaneamente l’intera scena da diurna a notturna e viceversa.
USO AI:
Ho utilizzato l’intelligenza artificiale in primo luogo per formare il gradiente che ha colorato il cielo. Successivamente, dopo aver disegnato la canvas statica, ne ho fatto uso per impostare l’animazione della canvas.
Lascia un commento
Devi essere connesso per inviare un commento.