From c3ce1241d2eafad3a2b5d35ac9145c63cb44e6c1 Mon Sep 17 00:00:00 2001 From: Andrea Manzi Date: Fri, 23 Oct 2026 15:26:24 +0200 Subject: [PATCH] Il titolo compare sotto il cartello mentre sfuma: niente piazza nel mezzo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Il cartello sfumava a 4,3 s ma il titolo arrivava solo a 5 s: per mezzo secondo si vedeva la scena di gioco. Ora il titolo si mostra all'inizio della dissolvenza, sotto il cartello; il test nel browser controlla che compaia quando il cartello è ancora visibile. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01UdeKd62opy9PKgpQXtVctF --- src/main.js | 11 ++++++++--- tests/browser.mjs | 6 +++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main.js b/src/main.js index d104a86..ed27520 100644 --- a/src/main.js +++ b/src/main.js @@ -222,15 +222,20 @@ $('restart').addEventListener('click', () => { if (storage) clearSave(storage); // Dietro il titolo si vede già la piazza. // --- Cartello d'apertura «Manzolo (Poca) Art Presents»: 5 secondi (un clic o un tasto lo salta), poi il titolo. +// Il titolo compare sotto il cartello quando questo comincia a sfumare (style.css, 4,3 s): dissolvenza incrociata, +// senza intravedere la piazza nel mezzo. +const SPLASH_FADE = 4300, SPLASH_END = 5000; function showSplash() { - let done = false; + let done = false, revealed = false; + const reveal = () => { if (!revealed) { revealed = true; showTitle(); } }; const end = () => { if (done) return; done = true; $('splash').hidden = true; - showTitle(); + reveal(); }; - setTimeout(end, 5000); + setTimeout(reveal, SPLASH_FADE); + setTimeout(end, SPLASH_END); $('splash').addEventListener('click', end); addEventListener('keydown', end, { once: true }); } diff --git a/tests/browser.mjs b/tests/browser.mjs index 11829f3..2d21853 100644 --- a/tests/browser.mjs +++ b/tests/browser.mjs @@ -49,8 +49,12 @@ try { assert.ok(await page.isHidden('#title'), 'il titolo aspetta la fine del cartello'); await page.waitForTimeout(2800); await page.screenshot({ path: `${OUT}/00-cartello.png` }); + // Il titolo arriva sotto il cartello mentre sfuma: in nessun momento si vede la scena nuda. await page.waitForSelector('#title:not([hidden])', { timeout: 8000 }); - assert.ok(await page.isHidden('#splash'), 'il cartello sparisce'); + assert.ok(await page.isVisible('#splash'), 'il titolo compare quando il cartello è ancora sopra'); + await page.waitForTimeout(350); + await page.screenshot({ path: `${OUT}/00b-dissolvenza.png` }); + await page.waitForSelector('#splash', { state: 'hidden', timeout: 3000 }); await page.screenshot({ path: `${OUT}/01-titolo.png` }); await page.click('#new-game'); // L'introduzione: una riga per clic, poi comincia la partita.