implement marching ants

Also removes abandoned bg prototype in favor of a cursor corner prototype.
This commit is contained in:
Kistaro Windrider 2023-08-05 16:30:09 -07:00
parent c92f2c3a5b
commit f4f629d1cd
Signed by: kistaro
SSH Key Fingerprint: SHA256:TBE2ynfmJqsAf0CP6gsflA0q5X5wD5fVKWPsZ7eVUg8

View File

@ -131,6 +131,13 @@ end
function init_title() function init_title()
pal({[0]=0x82,0x82,0x84,0x84,4,4,0x89,0x89,0x8e,0x8e,0x8f,0x8f,15,15,0x87,0x87},2) pal({[0]=0x82,0x82,0x84,0x84,4,4,0x89,0x89,0x8e,0x8e,0x8f,0x8f,15,15,0x87,0x87},2)
local antbar = ants.new{
progress=-0.5,
bgcolor=8,
fgcolor=10,
trcolor=9,
speed=1/15,
w=128,h=2}
return view.of{ return view.of{
bg.new{c=15}, bg.new{c=15},
@ -141,6 +148,18 @@ function init_title()
self.x=32+6*cos(time()/3.7) self.x=32+6*cos(time()/3.7)
end, end,
}, },
{update = function()
local p = antbar.progress + 0.003
if p > 1.5 then
p = -0.5
antbar.speed += 1/30
end
antbar.progress = p
end},
view.new{
views=antbar,
y=50,h=2,
},
} }
end end
@ -350,24 +369,73 @@ function printz(str)
print(str, 0, 0) print(str, 0, 0)
end} end}
end end
-- horizontal marching ants
ants = {
w=60, h=1,
stride=10,
-- bgcolor=0, --nil: transparent
ldcolor=7,
fgcolor=6,
trcolor=5,
speed=2/60,
offset=0,
progress=0.0,
}
mknew(ants)
function ants:update()
local stride = self.stride
local off = self.offset + self.speed * stride
if (off > stride) off -= stride
self.offset = off
end
function ants:draw()
local w,h,s,p,bg=self.w, self.h, self.stride,self.progress,self.bgcolor
if (bg) rectfill(0,0,w,h,bg)
if (p<=0) return
local x0 = (self.offset-s)&-1
local bw = (p*s)&-1
if bw > 1 then
local bwm2,c = bw-2,self.fgcolor
for x=x0,w,s do
rectfill(x,0,x+bwm2,h,c)
end
end
if bw > 0 then
local c = self.ldcolor
for x=x0+bw-1,w,s do
rectfill(x,0,x,h,c)
end
end
if p < 1 then
local c = self.trcolor
for x = x0-1+s,w,s do
rectfill(x,0,x,h,c)
end
end
end
__gfx__ __gfx__
0000000000000000000000000000000009999900066666000eeeee00077777000aaaaa0001111111000000000000000000000000000000000000000000000000 0000000000111000011011000000000009999900066666000eeeee00077777000aaaaa0001111111000000000000000000000000000000000000000000000000
00000000000000000000000000000000988888206bbbbb30eddddd207cccccd0a999994012222222300040400000000000000000000000000000000000000000 00000000012221001221221000000000988888206bbbbb30eddddd207cccccd0a999994012222222300040400000000000000000000000000000000000000000
00700700000000000000000000000000987878206b77bb30edd7dd207c7cccd0a979794012222222300444440000000000000000000000000000000000000000 00700700121110000112110000000000987878206b77bb30edd7dd207c7cccd0a979794012222222300444440000000000000000000000000000000000000000
00077000000000000000000000000000987778206b777b30ed777d207c77ccd0a997994012222222300444440000000000000000000000000000000000000000 00077000121000000012100000000000987778206b777b30ed777d207c77ccd0a997994012222222300444440000000000000000000000000000000000000000
00077000000000000000000000000000988788206bb77b30edd7dd207c777cd0a979794012222222300044400000000000000000000000000000000000000000 00077000121000000001000000000000988788206bb77b30edd7dd207c777cd0a979794012222222300044400000000000000000000000000000000000000000
00700700000000000000000000000000988888206bbbbb30eddddd207cccccd0a999994012222222300004000000000000000000000000000000000000000000 00700700010000000001000000000000988888206bbbbb30eddddd207cccccd0a999994012222222300004000000000000000000000000000000000000000000
000000000000000110101011000000000222220003333300022222000ddddd000444440012222222300444440000000000000000000000000000000000000000 000000000000000000121000000000000222220003333300022222000ddddd000444440012222222300444440000000000000000000000000000000000000000
000000000000001d5151515d10000000000000000000000000000000000000000000000012222222300444400000000000000000000000000000000000000000 00000000000000000001000000000000000000000000000000000000000000000000000012222222300444400000000000000000000000000000000000000000
00000000000000151010101510000000011111004040440004000400000000000000000003333333000444000000000000000000000000000000000000000000 00000000000000000000000000000000011111004040440004000400000000000000000003333333000444000000000000000000000000000000000000000000
00000000000000010000000100000000122222304440444044404440000000000000000000000000000440000000000000000000000000000000000000000000 00000000000000000000000000000000122222304440444044404440000000000000000000000000000440000000000000000000000000000000000000000000
00000000000000151000000510000000122222300400044040400400007070000000000000000000000400000000000000000000000000000000000000000000 00000000000000000000000000000000122222300400044040400400007070000000000000000000000400000000000000000000000000000000000000000000
00000000000000010000000100000000122222300000000000000000007070000000000000040004440004000000000000000000000000000000000000000000 00000000000000000000000000000000122222300000000000000000007070000000000000040004440004000000000000000000000000000000000000000000
00000000000000151000000510000000122222304040400004004440000000000000000000444044444044400000000000000000000000000000000000000000 00000000000000000000000000000000122222304040400004004440000000000000000000444044444044400000000000000000000000000000000000000000
00000000000000010000000100000000122222300400440040404040007770000000000004444444444044400000000000000000000000000000000000000000 00000000000000000000000000000000122222300400440040404040007770000000000004444444444044400000000000000000000000000000000000000000
00000000000000151000000510000000033333004040444004004440000000000000000000444044444444440000000000000000000000000000000000000000 00000000000000000000000000000000033333004040444004004440000000000000000000444044444444440000000000000000000000000000000000000000
000000000000001d5151515d10000000000000000000000000000000000000000000000000040004440444440000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000040004440444440000000000000000000000000000000000000000
00000000000000011010101100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__map__ __map__
0102020202020203000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0102020202020203000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
1112121212121213000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 1112121212121213000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000