Isle-Slingers/js/render/agents.md
2026-09-29 14:31:53 +00:00

923 B

js/render/ — agents.md

Module map: MODULES.md; runtime model: architecture.md.

Self-contained module. Exports ISLE_RENDERER = { Renderer, VIEW_W, VIEW_H }.

  • new Renderer(canvas, { onEvent }) — pure draw: draw(ctx, state) renders whatever the physics state contains (blocks, enemies, birds, sling, HUD-ish scenery, popups). It never mutates state.
  • VIEW_W/VIEW_H (1280x720) mirror physics constants VIEW — keep them in sync; the camera lives in state (set by physics/camera), render only applies it.
  • S-3/S-5 (RC-375D84, landed): drawBlock rotates about the block COM when bl.ang is set (no-op at ang=0, so un-tipped blocks draw identically to the pre-S-3 output), and drawBird renders landed birds as live bodies alongside the spent corpses. The DOM-stub test only checks that drawing does not throw and that the sling band stops tracking a launched bird (bug #14 arm).