Musica, vecchietti con sprite, nuove scene del paese e generatore degli sfondi

Lavoro della sessione precedente: colonna sonora (titolo, paese, ricordi) con muto e volume,
vecchietta e vecchietto sulla panchina, scene di Pieve, oratorio, Via de' Medici, Villa Adami,
salita, campeggio, Bosco ai Frati e viale dei cipressi, panorama dell'introduzione,
tools/genera.py per gli sfondi dalle foto.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UdeKd62opy9PKgpQXtVctF
This commit is contained in:
2026-10-23 12:59:57 +02:00
co-authored by Claude Opus 5.5
parent 5eeb634ceb
commit 33e2598718
45 changed files with 1556 additions and 78 deletions
+19
View File
@@ -163,3 +163,22 @@ test('il fotogramma segue quello che fa Andrea', () => {
for (let i = 0; i < 10; i++) { g.time += 0.1; poses.add(g.pose()); }
assert.deepEqual([...poses].sort(), ['stand', 'talk']);
});
test('i personaggi della scena: posa da fermi, battito di ciglia, parlato e posa della battuta', () => {
const story = mini();
story.scenes.a.people = [{ who: 'tizio', at: [50, 30], talk: ['talk', 'explain'], blink: 'blink', every: 2 }];
const g = new Game(story);
g.go('a');
const p = g.people()[0];
g.time = 0.5;
assert.equal(g.personPose(p), 'sit');
g.time = 1.9;
assert.equal(g.personPose(p), 'blink');
g.speech = { who: 'tizio', text: '...', left: 1 };
g.time = 0.1;
assert.equal(g.personPose(p), 'talk');
g.time = 0.4;
assert.equal(g.personPose(p), 'explain');
g.speech.pose = 'point';
assert.equal(g.personPose(p), 'point');
});