From b660bbeb9647f38975f0bdacfd10dc047eb94c4d Mon Sep 17 00:00:00 2001 From: Andrea Manzi Date: Sat, 31 Oct 2026 23:47:51 +0100 Subject: [PATCH] =?UTF-8?q?Il=20flipper=20rifatto=20da=20Codex:=20tavola?= =?UTF-8?q?=20ad=20alta=20risoluzione=20con=20lacca,=20cromature=20e=20luc?= =?UTF-8?q?i=20animate;=20due=20LOCK=20(tre=20passaggi=20sulla=20stessa=20?= =?UTF-8?q?rampa=20in=20venti=20secondi,=20Fortezza=20e=20Trebbio),=20la?= =?UTF-8?q?=20SUPER=20SPECIAL=20al=20centro=20che=20si=20apre=20con=20entr?= =?UTF-8?q?ambi=20i=20lock=20e=20d=C3=A0=20pallina=20premio=20e=20multibal?= =?UTF-8?q?l=20a=20tre;=20jackpot=20fino=20a=20x3=20coi=20bersagli,=20nuov?= =?UTF-8?q?e=20fanfare;=20la=20valvola=20contro=20il=20rientro=20nella=20m?= =?UTF-8?q?olla;=20display=20del=20punteggio=20e=20pannello=20della=20cacc?= =?UTF-8?q?ia=20al=20jackpot=20ai=20lati;=20test=20unitari=20e=20nel=20bro?= =?UTF-8?q?wser=20(lock,=20super,=20multiball)=20(Andrea)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_01GiECd9RWGMKV7n3K1mdy8T --- docs/STATO.md | 72 ++-- index.html | 37 +- src/engine/flipper-render.js | 754 +++++++++++++++++------------------ src/engine/flipper.js | 131 ++++-- src/engine/render.js | 6 + src/engine/soundscape.js | 2 + src/main.js | 8 + style.css | 1 + tests/flipper.browser.mjs | 44 +- tests/flipper.test.mjs | 168 ++++++-- 10 files changed, 694 insertions(+), 529 deletions(-) diff --git a/docs/STATO.md b/docs/STATO.md index 2981630..eab3c2d 100644 --- a/docs/STATO.md +++ b/docs/STATO.md @@ -50,51 +50,33 @@ Online su 50037.manzolo.it tutto fino agli effetti ambientali di Codex. Aperto, fuoco; quando son cotte, «Rovescia nel sacco». Contano le buone su 18 (alla bona 10, seria 15, a fassi male 16); vincendo, il flag `bruciate_fatte`. Test in `bruciate.test.mjs`, prova `npm run browser:bruciate`. [DA ANDREA] le battute dei volontari; un premio (un cartoccio da portare via?). -- **Il flipper del River (31 ottobre)**: «Usa» o «Apri» il River in Via Provinciale, si sceglie il livello e si gioca - (`src/engine/flipper.js`, disegno `flipper-render.js`, tavola di Codex `assets/closeups/river-flipper.png` con San - Piero dipinto: Fortezza, Pieve, torre, la Sieve che scende fra i flipper, il ponte, il Regolo con la corona, le - bandiere dei rioni). Fisica a passo fisso: molla, arco, quattro corsie dei rioni (tutte e quattro = PALIO), tre - funghi, bersagli a caduta della Pieve e della torre, il Regolo, sponde elastiche, due flipper, uscite laterali, - salvataggio della pallina una volta sola. Comandi: molla tenendo premuto (o cursore + Lancia, o Spazio), flipper - con le due metà della scena, i pulsanti «← Flipper»/«Flipper →» tenuti premuti o le frecce. Tre palline; traguardo - 6000/12000/25000. Test `flipper.test.mjs` (col giocatore automatico), prova `npm run browser:flipper`. - Rivisto con la revisione critica di Codex (31 ottobre, chiesta da Andrea): punti solo a un urto nuovo (la pallina - appoggiata sul Regolo faceva 240.000 punti al secondo), sottopassi contro gli attraversamenti del flipper, niente - cancelletto-ripiano e molla che arriva sempre in campo, salvataggio col tempo della simulazione (e in vista sul - quadro), corsie che contano attraversando la riga, traguardo acquisito appena raggiunto (poi si continua per il - record), annullare non lancia, due dita sulla scena e tasto destro del mouse, pulsanti dei flipper sempre attivi. - [DA ANDREA] le battute; cosa si vince (`flipper_vinto` per ora non serve a niente). Poi (Andrea): i due ponti (rampe `ramps`: imbocco in salita, percorso sopra la tavola, uscita dall'altra - parte; tutti e due di fila i PONTI), punti ×10 (traguardi 60.000/120.000/200.000), il tabellone a punti luminosi - (cifre che corrono, scritte che lampeggiano, lampadine che girano; carattere 5×7 in flipper-render.js) e un clic sul - River che entra e va al flipper. Seconda revisione di Codex (31 ottobre): i flipper rispondono anche con la pallina - sul ponte, l'imbocco conta solo la velocità lungo il ponte, salita e discesa con la stessa energia (meno l'attrito), - l'uscita dritta nella corsia di ritorno, la combo che scade e si azzera con la pallina persa, le scritte in coda col - traguardo davanti, il tabellone che dice l'esito giusto, le cifre che corrono in tempo fisso, i due tasti del mouse - dalla maschera `buttons` (il destro è sempre il flipper di destra), i glifi 3 e 5 rifatti. - Gli effetti (Andrea: «più spettacolare»): anelli e scintille sui funghi e sui bersagli, coriandoli nei colori dei - rioni ai colpi grossi, luci che corrono lungo i ponti, i punti che volano via dal punto colpito, il lampo colorato - sulla tavola e la scossa del mobile, la scia della pallina; sul tabellone la regia (la corona al traguardo, le - bandiere al Palio, i due archi ai ponti) e le fanfare. Ponti, sponde e griglia dei punti spenti in cache su tele a - parte (l'arretrato grafico con swiftshader da 8 s a meno di un secondo). - Il tabellone è un vero «backglass» (Andrea: «col Trebbio, la Fortezza e effetti speciali»): fondale di Codex - (`assets/closeups/river-flipper-tabellone.png`, 200×360: il Castello del Trebbio, la Fortezza sotto i fasci di luce, - il Regolo coi fulmini, i fuochi nei colori dei rioni), le cifre nella finestra nera, le lampadine sui bordi, i cinque - dischi in basso (palline e rioni), i ponti ai lati della finestra, il fondale che lampeggia ai colpi grossi. - Revisione estetica (Andrea, 31 ottobre): rampe a canalina con parapetti cromati e inserti ambra/azzurri, - imbocchi svasati allineati alla fisica, frecce animate e targhette RAMPA; funghi con ghiere metalliche, - sponde smaltate, palette avorio con gomma rossa e Regolo verde con corona. Il traguardo e i punti mancanti - restano visibili sotto il display, con una barra di avanzamento. Prove desktop e touch in `browser:flipper`. - Accessibilità dei tiri (Andrea): imbocchi delle rampe spostati verso il centro e allargati da 22 a 36 pixel - (spazio utile alla pallina da 13 a 27; ridotti dai primi 42 perché troppo larghi), pendenza e attrito ridotti per salire con colpi medi. Uscite laterali - ristrette da 22/14 a 14/12 pixel, con più spazio nelle corsie di ritorno alle palette. Test sui tiri obliqui, - decentrati e fuori bocca a tutti i livelli, e sulle discese laterali recuperate e ancora perdenti. - Al traguardo si vince una pallina extra, una sola volta per partita: il tiro prosegue e il premio si aggiunge - alla riserva, con avviso sul tabellone. Test a tutti i livelli anche raggiungendo il traguardo con l'ultima pallina. - Il LOCK (idea di Andrea, fatto da Codex e completato, 31 ottobre): lo stesso ponte tre volte di fila trattiene la - pallina nella serratura in fondo al ponte e ne dà una nuova sulla molla; l'altro ponte si accende SPECIAL; fatto, - JACKPOT (100.000), la pallina si libera e si gioca in MULTIBALL (due palline, ognuna coi suoi contatti e la sua scia; - persa una, resta l'altra senza scalare). Persa la pallina nuova prima dello SPECIAL, torna quella trattenuta. - [DA ANDREA] un record per livello che resti salvato (suggerito da Codex). +- **Il flipper del River / Il Regolo (31 ottobre)**: «Usa» o «Apri» il River in Via Provinciale, livello e + partita. Motore `src/engine/flipper.js`, disegno `flipper-render.js`. Tavolo rifatto in lacca scura, metallo, + rampe con ombre e luci ciano/ambra/viola, riflessi sulle palline e plastiche in rilievo; scena a 1280×720 con + coordinate logiche 640×360, gli altri ambienti restano in pixel art. Fondale di Codex conservato nel riquadro + illustrato del backglass; niente pannelli sopra il Trebbio. Superfici e bagliori in cache, senza disegnare la + strada nascosta sotto il flipper. Pannello a destra con progressione, timer, moltiplicatore e prossimo obiettivo. + - Rampe FORTEZZA e TREBBIO: imbocchi centrali da 36 pixel, 27 utili alla pallina, salite accessibili con colpi + medi, 15.000 punti. Tre passaggi sulla stessa rampa entro 20 secondi dal primo: LOCK e nuova pallina gratis. + Un'altra rampa completata o il tempo esaurito interrompono la serie. Dopo il primo LOCK, primo passaggio + nell'altra rampa SPECIAL: jackpot da 100.000; tre passaggi ravvicinati fanno il secondo LOCK. + - Due LOCK alzano la rampa centrale SUPER SPECIAL: 250.000 punti, una pallina extra in riserva e multiball a + tre. Uscita SUPER raccordata alla corsia sinistra sopra la paletta, a velocità ridotta; i due lock liberano + le palline dai lati, sfalsati di 0,45 secondi. In multiball le rampe pagano jackpot, e una vita si perde solo + all'ultima pallina. Prima della SUPER, perdere la sostitutiva recupera l'ultimo lock senza scalare vite. + - Completare una serie di bersagli alza il moltiplicatore jackpot fino a ×3, azzerato alla perdita di una vita. + Restano PONTI (+50.000 alternando le rampe entro 12 secondi), PALIO (+30.000), respingenti, bersagli e Regolo. + Traguardi 60.000/120.000/200.000: una pallina premio una sola volta, vittoria acquisita anche uscendo prima. + - Uscite laterali da 14/12 pixel, corsie di ritorno alle palette più ampie. Valvola inclinata alla corsia di + lancio: il lancio passa, i ritorni dal campo vengono deviati a sinistra. Ogni pallina ha contatti, scia e + anti-incastro propri; urti fra palline, palette mosse una sola volta per passo. Pausa ferma anche i timer. + - Luci che scorrono sulle rampe attive, frecce e spie 1/3–2/3–LOCK, rampa SUPER che si alza, fasci luminosi, + scintille, particelle e fanfare distinte per jackpot, apertura SUPER e multiball; la pallina resta leggibile. + Comandi: mouse, due dita, tasto destro, frecce, Spazio e pulsanti; istruzioni in «Come si gioca». + - Test `flipper.test.mjs`: sequenze in entrambi gli ordini e a tutti i livelli, scadenze, premi, collisioni, + recupero della SUPER con la paletta, rilascio sfalsato e valvola. `npm run browser:flipper`: desktop e touch, + screenshot di tavolo, LOCK, SUPER, multiball e risultato in `/tmp/regolo-flipper`, intervallo fra frame. + [DA ANDREA] battute, premio nell'avventura (`flipper_vinto`), record persistente per livello. - **Dedica allo zio Mario (31 ottobre)**: nei Ringraziamenti, sotto quella al Lele e più piccola: «Al mio caro zio Mario, che mi ha fatto vivere tante avventure più belle della fantasia.» - **Il Taglia (31 ottobre)**: tolte le battute sulla sua altezza (Baldoria: non gli fa piacere). diff --git a/index.html b/index.html index a4fcb72..dbe30ba 100644 --- a/index.html +++ b/index.html @@ -304,23 +304,26 @@ sacco (o Invio). Contano le bruciate buone: alla bona ne bastano 10 su 18, seria 15, a fassi male 16.