diff --git a/index.html b/index.html index a01d87d..e8ae0fc 100644 --- a/index.html +++ b/index.html @@ -52,6 +52,6 @@

TAP TO START

- + diff --git a/render.js b/render.js index 5117f58..8a6ca14 100644 --- a/render.js +++ b/render.js @@ -428,15 +428,16 @@ export function render() { ctx.fill(); }; // Chevrons stepped along the lane in WORLD space, each sized by its own projection scale, - // so they shrink into the distance like everything else on the court. They also fade IN - // toward the target: faint at your racket, solid on the body, which walks the eye up the - // lane instead of leaving a uniform stripe. More of them, and fatter, the harder you draw. + // so they shrink into the distance like everything else on the court. They also fade OUT + // toward the target: solid at your racket, thinning up the lane, so the trail reads as + // something leaving your hand rather than as a label on the zombie. More of them, and + // fatter, the harder you draw. const n = Math.round(3 + ft.f * 5); ctx.fillStyle = col; for (let i = 1; i <= n; i++) { const u = i / (n + 1); const c = proj(P.x + (tx - P.x) * u, 1.4 + (0.35 - 1.4) * u, P.z + (tz - P.z) * u); - chevron(c, Math.max(1.5, c.s * (0.07 + ft.f * 0.09)), 0.3 + 0.7 * u); + chevron(c, Math.max(1.5, c.s * (0.07 + ft.f * 0.09)), 1 - 0.7 * u); } chevron(b, Math.max(2.5, b.s * (0.10 + ft.f * 0.11)), 1); // the arrowhead lands ON the target ctx.globalAlpha = 1;