Il cartello d'apertura: online, su un sito mai visitato, il browser bloccava la musichetta senza un gesto (in locale no, ci si gioca da giorni); ora in quel caso il cartello aspetta un tocco («Tocca per cominciare») e poi parte coi suoi tempi. La Ghiacciomobile non ripete più le battute due volte (la scelta la dice già Andrea). Licenza (codice MIT, storia e grafica CC BY-NC-SA, eccezioni per persone vere, palio, Suno, voci XTTS con la CPML, font OFL, Wikipedia), README riscritto, scripts/check-public.sh e make check-public dentro make verify. Prove nel browser con l'autoplay permesso, più una per il caso bloccato
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A1dxvtsZx8NE9fwjXUNDBr
This commit is contained in:
+12
-8
@@ -946,7 +946,7 @@ $('restart').addEventListener('click', () => {
|
||||
// incrociata, senza intravedere la piazza nel mezzo. I tempi partono da qui, non dal primo disegno della pagina.
|
||||
const SPLASH_FADE = 4300, SPLASH_END = 5000;
|
||||
function showSplash() {
|
||||
let done = false, revealed = false;
|
||||
let done = false, revealed = false, waiting = false;
|
||||
const reveal = () => { if (!revealed) { revealed = true; showTitle(); $('splash').classList.add('out'); } };
|
||||
const end = () => {
|
||||
if (done) return;
|
||||
@@ -954,18 +954,22 @@ function showSplash() {
|
||||
$('splash').hidden = true;
|
||||
jingle?.pause(); // saltato il cartello, si salta anche la musichetta
|
||||
reveal();
|
||||
removeEventListener('keydown', onKey);
|
||||
};
|
||||
// La musichetta: senza un gesto del giocatore il browser può non lasciarla partire, e allora il cartello resta muto.
|
||||
const schedule = () => { setTimeout(reveal, SPLASH_FADE); setTimeout(end, SPLASH_END); };
|
||||
// La musichetta: su un sito mai visitato il browser non la fa partire senza un gesto (in locale si fida, perché ci
|
||||
// si gioca da giorni: Andrea, 26 ottobre, «online non sento gli effetti»). Allora il cartello aspetta il primo clic
|
||||
// o tasto, che fa partire musichetta e conto alla rovescia; il secondo lo salta, come sempre.
|
||||
const jingle = story.music?.splash ? new Audio(versioned(story.music.splash)) : null;
|
||||
const begin = () => { waiting = false; $('splash').classList.remove('wait'); jingle.play().catch(() => {}); schedule(); };
|
||||
const onKey = () => { if (waiting) begin(); else end(); };
|
||||
if (jingle) {
|
||||
jingle.volume = music.muted ? 0 : music.volume;
|
||||
jingle.play().catch(() => {});
|
||||
jingle.play().then(schedule).catch(() => { waiting = true; $('splash').classList.add('wait'); });
|
||||
window.jingle = jingle; // per i test nel browser
|
||||
}
|
||||
setTimeout(reveal, SPLASH_FADE);
|
||||
setTimeout(end, SPLASH_END);
|
||||
$('splash').addEventListener('click', end);
|
||||
addEventListener('keydown', end, { once: true });
|
||||
} else schedule();
|
||||
$('splash').addEventListener('click', () => { if (waiting) begin(); else end(); });
|
||||
addEventListener('keydown', onKey);
|
||||
}
|
||||
|
||||
for (const el of document.querySelectorAll('.version')) el.textContent = `v${VERSION}`;
|
||||
|
||||
+3
-2
@@ -2197,8 +2197,9 @@ export const story = {
|
||||
ghiacciomobile: {
|
||||
nodes: {
|
||||
start: { options: [
|
||||
{ text: 'Mi ricordi come avete fatto quella volta a tornare illesi dopo aver lasciato una fiancata a Campolungo?', then: [{ say: 'Mi ricordi come avete fatto quella volta a tornare illesi dopo aver lasciato una fiancata a Campolungo?' }, { say: '...' }] },
|
||||
{ text: 'Ho sentito dire dal Trappola che pensavi di poter attraversare i muri.', then: [{ say: 'Ho sentito dire dal Trappola che pensavi di poter attraversare i muri. Ti stimo tanto.' }, { say: '...' }] },
|
||||
// La scelta la dice già Andrea (game.choose): dopo, solo il silenzio della macchina.
|
||||
{ text: 'Mi ricordi come avete fatto quella volta a tornare illesi dopo aver lasciato una fiancata a Campolungo?', then: [{ say: '...' }] },
|
||||
{ text: 'Ho sentito dire dal Trappola che pensavi di poter attraversare i muri.', say: 'Ho sentito dire dal Trappola che pensavi di poter attraversare i muri. Ti stimo tanto.', then: [{ say: '...' }] },
|
||||
{ text: 'Riposa, Ghiacciomobile.', next: 'end' },
|
||||
] },
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user