118 lines
2.6 KiB
Lua
118 lines
2.6 KiB
Lua
pico-8 cartridge // http://www.pico-8.com
|
|
version 33
|
|
__lua__
|
|
-- pyras
|
|
-- by: djib
|
|
|
|
function _init()
|
|
initpyras()
|
|
t=0
|
|
end
|
|
|
|
function _update()
|
|
waitandmove()
|
|
eatpyras()
|
|
end
|
|
|
|
function _draw()
|
|
cls()
|
|
drawbg()
|
|
drawguy()
|
|
drawpyras()
|
|
end
|
|
-->8
|
|
-- guy
|
|
guy={
|
|
x=64,
|
|
y=64,
|
|
speed=4
|
|
}
|
|
|
|
function moveguy()
|
|
if (btn(0)) guy.x=max(0,guy.x-guy.speed)
|
|
if (btn(1)) guy.x=min(127,guy.x+guy.speed)
|
|
if (btn(2)) guy.y=max(0,guy.y-guy.speed)
|
|
if (btn(3)) 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()
|
|
for i=1,200 do
|
|
pyras[i]={
|
|
x=flr(rnd(128)),
|
|
y=flr(rnd(128))
|
|
}
|
|
end
|
|
end
|
|
|
|
function drawpyras()
|
|
for pyra in all(pyras) do
|
|
pset(pyra.x,pyra.y,8)
|
|
end
|
|
end
|
|
|
|
function movepyras()
|
|
for pyra in all(pyras) do
|
|
if (pyra.x>guy.x) pyra.x-=1
|
|
if (pyra.x<guy.x) pyra.x+=1
|
|
if (pyra.y>guy.y) pyra.y-=1
|
|
if (pyra.y<guy.y) pyra.y+=1
|
|
end
|
|
end
|
|
|
|
function eatpyras()
|
|
local toeat={}
|
|
for i,pyra in ipairs(pyras) do
|
|
for j=i+1,#pyras do
|
|
if pyra.x==pyras[j].x and pyra.y==pyras[j].y then
|
|
add(toeat,j)
|
|
end
|
|
end
|
|
end
|
|
for index in all(toeat) do
|
|
sfx(0)
|
|
deli(pyras,index)
|
|
end
|
|
end
|
|
-->8
|
|
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)
|
|
end
|
|
|
|
function waitandmove()
|
|
if t>0.05*#pyras then
|
|
movepyras()
|
|
moveguy()
|
|
t=0
|
|
else
|
|
t+=1
|
|
end
|
|
end
|
|
__gfx__
|
|
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
|
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
|
00700700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
|
00077000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
|
00077000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
|
00700700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
|
__sfx__
|
|
000100002e05000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|