pico-8 cartridge // http://www.pico-8.com version 33 __lua__ -- escape the pyras -- by djib function _init() initgame() end function _update() updategame() end function _draw() drawgame() end -->8 -- guy function initguy() guy={ x=64, y=64, 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) 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) end -->8 -- pyras function initpyras() pyras={} for i=1,game.nbpyras do repeat pyras[i]={ x=flr(rnd(128)), y=flr(rnd(128)) } until abs(pyras[i].x-guy.x)>5 or abs(pyras[i].y-guy.y)>5 end end function movepyras() for pyra in all(pyras) do if (pyra.x>guy.x) pyra.x-=1 if (pyra.xguy.y) pyra.y-=1 if (pyra.y8 -- game game={ level=7, slowdown=0.1 } function initgame() game.state=0 game.tick=0 game.nbpyras=flr(40*1.25^game.level) initguy() initpyras() end function drawbg() local offset=1 if(#pyras>9)offset+=1 if(#pyras>99)offset+=1 rectfill(0,0,127,127,1) print(#pyras,128-4*offset,1,7) print("l:"..game.level,1,1,7) end function waitormove() if game.tick>min(30,game.slowdown*#pyras) then moveguy() movepyras() game.tick=0 end end function updategame() game.tick+=1 if game.state==0 then if(btnp(❎))game.state=1 elseif game.state==1 then waitormove() if guy.dead then game.state=3 game.level=max(0,game.level-1) sfx(1) elseif #pyras==1 then game.state=2 game.level+=1 sfx(2) end elseif game.tick>60 then _init() end end function drawgame() cls() drawbg() drawguy() drawandeatpyras() if game.state==0 then cursor(48,61,7) print "press ❎" print "to start" elseif game.state>1 then cursor(46,61,7) print "game over" if game.state==2 then print "you won!!" end if game.state==3 then print "you lost!" end end end __gfx__ 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00700700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00077000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00077000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00700700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 __sfx__ 000100002e05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 9d0800000215000000000001910018100021500000000000021500000002150000000000014100131000515000000121000415000000041500000011100021500000002150000000010001150000000215000100 000d00000c150000000f1500f1501315100000000001115000000000000c15000000000000000000000000000000000000000000a15000000000000c150000000000000000000000000000000000000000000000