Motore guidato dai dati con due scene di prova (Piazza e salita alla Fortezza), percorsi su area concava, clic intelligente e pressione lunga, test della soluzione completa in node e nel browser con Playwright. Nel documento la leggenda del nonno. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
47 lines
2.0 KiB
HTML
47 lines
2.0 KiB
HTML
<!doctype html>
|
|
<html lang="it">
|
|
<head>
|
|
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover">
|
|
<meta name="theme-color" content="#1b1420"><meta name="description" content="La Leggenda del Regolo: un'avventura punta-e-clicca a San Piero a Sieve, durante il Palio della Fortezza del 2007.">
|
|
<title>La Leggenda del Regolo</title>
|
|
<link rel="stylesheet" href="style.css">
|
|
</head>
|
|
<body>
|
|
<div id="app">
|
|
<div id="stage">
|
|
<canvas id="scene" width="640" height="360" aria-label="La scena dell'avventura"></canvas>
|
|
<div id="speech" aria-live="polite"></div>
|
|
<section id="title" class="overlay">
|
|
<h1>La Leggenda<br>del <span>Regolo</span></h1>
|
|
<p class="subtitle">San Piero a Sieve · Palio della Fortezza · 2007</p>
|
|
<div class="buttons"><button id="continue" hidden>Continua</button><button id="new-game">Nuova partita</button></div>
|
|
<p class="dedication">Al Lele, che mi ha fatto conoscere Monkey Island.</p>
|
|
</section>
|
|
<section id="ending" class="overlay" hidden>
|
|
<h2>Fine del prototipo</h2>
|
|
<p>Il Regolo è passato di qui. Il resto della storia è ancora da scrivere.</p>
|
|
<p class="dedication">Al Lele, che mi ha fatto conoscere Monkey Island.</p>
|
|
<div class="buttons"><button id="restart">Ricomincia</button></div>
|
|
</section>
|
|
</div>
|
|
<div id="side">
|
|
<div id="sentence" aria-live="polite"></div>
|
|
<div id="panel">
|
|
<div id="verbs"></div>
|
|
<div id="inventory" aria-label="Inventario"></div>
|
|
</div>
|
|
<ol id="choices" hidden></ol>
|
|
</div>
|
|
<p id="rotate">Gira il telefono: in orizzontale si gioca meglio.</p>
|
|
</div>
|
|
<div id="error" hidden role="alert"></div>
|
|
<script type="module">
|
|
import('./src/main.js').catch(error => {
|
|
const panel = document.getElementById('error');
|
|
panel.textContent = 'Avvio non riuscito: apri il gioco da un server statico (python3 -m http.server) e ricarica. ' + error.message;
|
|
panel.hidden = false;
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|