From 44fb8482a562cdc1e4099c9cbf863b79047b75ca Mon Sep 17 00:00:00 2001 From: Kistaro Windrider Date: Sun, 1 Jun 2025 23:29:03 -0700 Subject: [PATCH] a version of zot that does not look awful performance impact is probably not acceptable though --- collisiontest.p8 | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/collisiontest.p8 b/collisiontest.p8 index 8bdbc26..e34cde9 100644 --- a/collisiontest.p8 +++ b/collisiontest.p8 @@ -114,7 +114,7 @@ end function _draw() cls(0) rect(bx0,by0,bx1,by1,6) - zot(lx1,ly1,5,lx1-lx0,ly1-ly0,10,9,8) + zot(lx1,ly1,0.75,lx1-lx0,ly1-ly0,10,9,8) --line(lx0,ly0,lx1,ly1,2) local cmin, cmax = collides() if cmin then @@ -140,19 +140,22 @@ function zot_one(x, y, r, ir, dx, dy, hot, warm) line(x0-rx,y0+iry,x-irx,y+ry,warm) --line(x0-rx,y0-ry,x+rx,y+ry,warm) end - line(x0,y0,x-rx,y-iry,hot) - line(x0,y0,x+irx,y-ry,hot) + line(x0,y0,x+rx,y-iry,hot) + line(x0,y0,x-irx,y+ry,hot) --line(x0,y0,x+rx,y+ry,hot) end -function zot(x,y,r,dx,dy,hot,warm,cold) - local x0,y0=x-dx,y-dy - if (cold) rectfill(x0-r,y0-r,x0+r,y0+r,cold) - for ir=-r,0 do - zot_one(x,y,r,ir,dx,dy,hot,warm) - zot_one(x,y,r,-ir,dx,dy,hot,warm) +function zot(x,y,r,dx,dy,hot,cold) + local x0,y0,sdx,sdy=x-dx,y-dy,sgn(dx),sgn(dy) + local rx,ry=r*sdx,r*sdy + for i=-r,r do + line(x0+i*sdx,y0-ry,x+rx,y-i*sdy,cold) + line(x0-rx,y0+i*sdy,x-i*sdx,y+ry,cold) + end + for i=-r,r do + line(x0,y0,x+rx,y-i*sdy,hot) + line(x0,y0,x-i*sdx,y+ry,hot) end - rectfill(x-r,y-r,x+r,y+r,hot) end __gfx__ 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000