Skip to content

Corrige fuite d'état Canvas (bullets/ship) et ajoute instrumentation visuelle#119

Closed
serzel wants to merge 8 commits into
mainfrom
codex/fix-visual-bug-for-bullets-rendering
Closed

Corrige fuite d'état Canvas (bullets/ship) et ajoute instrumentation visuelle#119
serzel wants to merge 8 commits into
mainfrom
codex/fix-visual-bug-for-bullets-rendering

Conversation

@serzel

@serzel serzel commented Feb 18, 2026

Copy link
Copy Markdown
Owner

Motivation

  • Le rendu manifestait un défaut visible: exactement une bullet rendue avec une couleur/luminosité incorrecte, plus un cercle cyan central et parfois un contour d’outline des flammes en accélération, selon le nombre/order de draw calls.
  • Le but était de prouver la cause par instrumentation (logs/overlays) puis d’appliquer un correctif minimal et gameplay‑neutre.

Description

  • Ajout d’une instrumentation visuelle et logs dans Game (debugVisualFx) pour capturer par frame l’état du vaisseau et des projectiles, transitions single vs multi, et un échantillon des états canvas avant le dessin de chaque bullet (#captureVisualFxProbeState, #drawBulletWithVisualProbe, overlay).
  • Ajout d’un identifiant unique par projectile et d’un export d’état debug via Bullet.getRenderDebugState() pour tracer précisément la « bullet seule ». (src/entities/Bullet.js).
  • Correctif ciblé: normalisation explicite de l’état Canvas 2D en entrée de rendu pour Bullet.draw() et Ship.render() (globalCompositeOperation, globalAlpha, shadow*, filter, lineWidth, lineCap) pour empêcher le « render-state bleed » entre draw calls sans modifier la logique gameplay (vitesse/lifetime/dégâts/cadence inchangés). (src/entities/Bullet.js, src/entities/Ship.js).
  • Exposition runtime via window.__game pour piloter des scénarios automatisés externes (scripts de repro / captures). (src/main.js).

Testing

  • Syntaxe statique: node --check src/entities/Bullet.js && node --check src/entities/Ship.js && node --check src/engine/Game.js — succès.
  • Scénario automatisé préparé pour repro (tir continu 3s répété, shotgun clic unique répété 5x, captures) et script Playwright inclus, mais l’exécution navigateur dans cet environnement a échoué pour des raisons de routage/accès (404 côté container), donc les captures automatisées n’ont pas pu être récupérées ici (échec d’exécution Playwright).
  • Les modifications sont purement de rendu et diagnostics; aucun paramètre de gameplay n’a été modifié et les checks automatiques locaux ont passé la validation.

Codex Task

@serzel serzel closed this Feb 18, 2026
@serzel
serzel deleted the codex/fix-visual-bug-for-bullets-rendering branch February 18, 2026 18:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant