Corrige les animations figées et le reporting SCORM dans le paquet exporté
Build and deploy / test-python (push) Failing after 1m15s
Build and deploy / test-js (push) Successful in 51s
Build and deploy / build-and-push (push) Skipped
Build and deploy / deploy (push) Skipped

Deux bugs distincts détectés dans le paquet Web/SCORM :
- L'animation de marche du personnage dépend entièrement des touches
  clavier maintenues (heldKeys), qui ne sont alimentées que par des
  écouteurs keydown/keyup sur window. Un LMS comme SCORM Cloud charge
  index.html dans une iframe qui ne reçoit pas le focus clavier par
  défaut : aucune touche n'atteignait jamais window, donc le personnage
  ne bougeait/animait jamais. On force désormais le focus au chargement
  et on le reprend au premier clic dans le jeu.
- scorm-api.js (qui pousse score/statut au LMS) était bien copié dans
  le zip mais jamais référencé par un <script> dans index.html, car
  build_scorm_package.py ne passait pas scorm_api_wrapper_url au
  template — le reporting SCORM (Completion/Success/Score) ne
  fonctionnait donc jamais depuis un export.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
william
2026-09-03 18:23:17 +02:00
co-authored by Claude Sonnet 5
parent 413685e871
commit 00f7191a8b
2 changed files with 9 additions and 0 deletions
+8
View File
@@ -189,6 +189,14 @@
// triggers.js. runScreenHeldKeyTriggers(), lui, est déjà appelé depuis
// showScreen() comme runScreenTimerTriggers().
bindHeldKeyTriggers();
// Le jeu exporté (SCORM) est souvent chargé dans une iframe par le LMS,
// qui ne reçoit pas le focus clavier automatiquement — sans focus, les
// événements keydown n'atteignent jamais window et le personnage ne
// bouge/anime jamais. On force le focus au chargement et on le
// reprend au premier clic dans le jeu.
window.focus();
document.body.tabIndex = -1;
document.body.addEventListener('click', function () { window.focus(); });
</script>
</body>
</html>