From db259d49b16cbf7eb09e39477cb0795e10e49aa7 Mon Sep 17 00:00:00 2001 From: djib Date: Mon, 29 Nov 2021 22:39:37 +0100 Subject: [PATCH] Size of characters can be changed in code --- pyras.p8 | 80 ++++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 58 insertions(+), 22 deletions(-) diff --git a/pyras.p8 b/pyras.p8 index 5ada0e7..d2a87a5 100644 --- a/pyras.p8 +++ b/pyras.p8 @@ -19,31 +19,44 @@ end -- guy function initguy() guy={ - x=64, - y=64, + x=flr(game.boardsize/2), + y=flr(game.boardsize/2), speed=4, dead=false } end function moveguy() - if (btn(⬅️)) guy.x=max(0,guy.x-guy.speed) - if (btn(➡️)) guy.x=min(127,guy.x+guy.speed) - if (btn(⬆️)) guy.y=max(0,guy.y-guy.speed) - if (btn(⬇️)) guy.y=min(127,guy.y+guy.speed) + if (btn(⬅️)) then + guy.x=max(0,guy.x-guy.speed) + end + if (btn(➡️)) then + guy.x=min(game.boardsize,guy.x+guy.speed) + end + if (btn(⬆️)) then + guy.y=max(0,guy.y-guy.speed) + end + if (btn(⬇️)) then + guy.y=min(game.boardsize,guy.y+guy.speed) + end end function drawguy() - pset(guy.x,guy.y,11) - -- guides - pset(guy.x-guy.speed,guy.y-guy.speed,6) - pset(guy.x,guy.y-guy.speed,6) - pset(guy.x+guy.speed,guy.y-guy.speed,6) - pset(guy.x-guy.speed,guy.y,6) - pset(guy.x+guy.speed,guy.y,6) - pset(guy.x-guy.speed,guy.y+guy.speed,6) - pset(guy.x,guy.y+guy.speed,6) - pset(guy.x+guy.speed,guy.y+guy.speed,6) + local spd=guy.speed + drawpixel(guy.x,guy.y,11) + guides={ + {guy.x-spd,guy.y-spd}, + {guy.x ,guy.y-spd}, + {guy.x+spd,guy.y-spd}, + {guy.x-spd,guy.y }, + {guy.x+spd,guy.y }, + {guy.x-spd,guy.y+spd}, + {guy.x ,guy.y+spd}, + {guy.x+spd,guy.y+spd} + } + for g in all(guides) do + drawpixel(g[1],g[2],6) + end end -->8 -- pyras @@ -52,8 +65,8 @@ function initpyras() for i=1,game.nbpyras do repeat pyras[i]={ - x=flr(rnd(128)), - y=flr(rnd(128)) + x=flr(rnd(game.boardsize+1)), + y=flr(rnd(game.boardsize+1)) } until abs(pyras[i].x-guy.x)>5 or abs(pyras[i].y-guy.y)>5 @@ -75,23 +88,25 @@ end function drawandeatpyras() for index,pyra in ipairs(pyras) do - if pget(pyra.x,pyra.y)==8 then + if getpixel(pyra.x,pyra.y)==8 then sfx(0) deli(pyras,index) else - pset(pyra.x,pyra.y,8) + drawpixel(pyra.x,pyra.y,8) end end end - -->8 -- game game={ level=1, - slowdown=0.15 + pixelsize=2 } function initgame() + local pxs=game.pixelsize + game.boardsize=flr((127-pxs+1)/pxs) + game.slowdown=0.125*pxs game.state=0 game.tick=0 game.nbpyras=flr(40*1.25^game.level) @@ -156,6 +171,27 @@ function drawgame() end end end +-->8 +-- helpers + +function drawpixel(x,y,colour) + local size=game.pixelsize + rectfill( + x*size, + y*size, + (x+1)*size-1, + (y+1)*size-1, + colour + ) +end + +function getpixel(x,y) + local size=game.pixelsize + return pget( + x*size, + y*size + ) +end __gfx__ 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000