diff --git a/collisiontest.p8 b/collisiontest.p8 index 0a619ca..8bdbc26 100644 --- a/collisiontest.p8 +++ b/collisiontest.p8 @@ -114,7 +114,8 @@ end function _draw() cls(0) rect(bx0,by0,bx1,by1,6) - line(lx0,ly0,lx1,ly1,2) + zot(lx1,ly1,5,lx1-lx0,ly1-ly0,10,9,8) + --line(lx0,ly0,lx1,ly1,2) local cmin, cmax = collides() if cmin then local dx,dy=lx1-lx0,ly1-ly0 @@ -122,7 +123,7 @@ function _draw() ly0 + dy*cmin, lx0 + dx*cmax, ly0 + dy*cmax, - 8) + 11) pset(lx0 + dx*cmin, ly0 + dy*cmin, 12) @@ -130,6 +131,29 @@ function _draw() pset(last_mx,last_my,7) end +-->8 +function zot_one(x, y, r, ir, dx, dy, hot, warm) + local x0, y0 = x-dx, y-dy + local rx,ry,irx,iry=r*sgn(dx),r*sgn(dy),ir*sgn(dx),ir*sgn(dy) + if warm then + line(x0+irx,y0-ry,x+rx,y-iry,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+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) + end + rectfill(x-r,y-r,x+r,y+r,hot) +end __gfx__ 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000