Re-slice corrected bounce sheet; ball under the hand; stable landing rings
- p_bounce/p_bounce2 re-extracted from Oliver's corrected _sheet_pbounce.png (racket properly in the right hand) - bounce ball offset 0.4 -> 0.32 so it sits under the reaching hand - landing rings draw with integer-snapped center/radii and a solid 2px stroke — the sub-pixel anti-aliasing shimmer read as flickering Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
91da24f1a7
commit
7069723042
4 files changed
+6
-3
No files matched your search
Binary file not shown.
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 1.3 MiB |
Binary file not shown.
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 8.7 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 8.7 KiB |
@@ -623,8 +623,11 @@ function drawBoy(b) {
|
||||
}
|
||||
function drawRing(x, z, color) {
|
||||
const p = proj(x, 0, z);
|
||||
ctx.strokeStyle = color; ctx.lineWidth = 1.2;
|
||||
ctx.beginPath(); ctx.ellipse(p.x, p.y, p.s * 0.3, p.s * 0.12, 0, 0, 7); ctx.stroke();
|
||||
// integer-snapped so the moving ring steps whole pixels instead of shimmering
|
||||
const cx = Math.round(p.x), cy = Math.round(p.y);
|
||||
const rx = Math.max(2, Math.round(p.s * 0.3)), ry = Math.max(1, Math.round(p.s * 0.12));
|
||||
ctx.strokeStyle = color; ctx.lineWidth = 2;
|
||||
ctx.beginPath(); ctx.ellipse(cx, cy, rx, ry, 0, 0, 7); ctx.stroke();
|
||||
}
|
||||
|
||||
function drawChar(ch) {
|
||||
@@ -733,7 +736,7 @@ function render() {
|
||||
// server idly bouncing the ball while waiting
|
||||
if (phase === 'pretoss') {
|
||||
const sv = score.server === 'P' ? P : O;
|
||||
const bx = sv.x - 0.4 * (sv.side === 'P' ? 1 : -1), by = Math.abs(Math.sin(idleT * 3.6)) * 0.78; // floor to hand
|
||||
const bx = sv.x - 0.32 * (sv.side === 'P' ? 1 : -1), by = Math.abs(Math.sin(idleT * 3.6)) * 0.78; // floor to the reaching hand
|
||||
const sh = proj(bx, 0, sv.z);
|
||||
ctx.fillStyle = 'rgba(0,0,0,0.3)';
|
||||
ctx.beginPath(); ctx.ellipse(sh.x, sh.y, Math.max(1.5, sh.s * 0.08), Math.max(1, sh.s * 0.035), 0, 0, 7); ctx.fill();
|
||||
|
||||
Reference in new issue
Block a user