Turn the bodies around, calm the racket zombie, break up the pack
Three from the playtest, all code: Every side-on sprite is DRAWN facing left, and nothing ever mirrored them, so a zombie walking right moonwalked — obvious the moment they close on you across your own half. They face where they last walked now. The front-facing ones (the turned CPU, the machine, a chapter boss) have no left or right and are left alone. The racket zombie holds a position and only moves when the ball makes him, so a time-driven walk cycle flicked him between two frames on the spot. His stride steps off ground covered, like the brute's — standing still is standing still. And the pack no longer stands on the body twitching for as long as the summary is up: once it appears they break up and shamble away up-court. Measured — feeding at 3s, dispersed to 3m by 6.5s. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
7edd623372
commit
01498eddad
7 files changed
+82
-12
No files matched your search
@@ -746,6 +746,7 @@ function racketAI(rz, dt) {
|
||||
const dx = ball.x - rz.x, dz = tz - rz.z, d = Math.hypot(dx, dz);
|
||||
if (d > 0.15) {
|
||||
const step = Math.min(TUNE.racketSpeed * dt, d);
|
||||
rz.dist = (rz.dist || 0) + step; // ground covered — his walk cycle steps off this, not the clock
|
||||
rz.x += dx / d * step; rz.z += dz / d * step; rz.runT += dt;
|
||||
if (rz.pose !== 'swing') rz.pose = 'run';
|
||||
if (Math.abs(dx) > 0.2) rz.facing = dx > 0 ? 1 : -1;
|
||||
|
||||
Reference in new issue
Block a user