Files
Techmino/parts/backgrounds/blockspace.lua
MrZ_26 f8d17b23b6 注释后加空格
联网稍微推进
2022-10-03 02:43:51 +08:00

58 lines
1.3 KiB
Lua

-- Space but tetrominoes
local gc=love.graphics
local gc_clear,gc_translate=gc.clear,gc.translate
local gc_setColor,gc_draw=gc.setColor,gc.draw
local sin,cos=math.sin,math.cos
local rnd=math.random
local ins,rem=table.insert,table.remove
local back={}
local t
local mino
function back.init()
t=0
mino={}
end
function back.update()
t=t+1
if t%3==0 then
local r=rnd(29)
ins(mino,{
block=TEXTURE.miniBlock[r],
color=BLOCK_COLORS[SETTING.skin[r]],
ang=6.2832*rnd(),
rotate=6.2832*rnd(),
vr=.05-rnd()*.1,
d=0,
v=.5+rnd(),
})
end
local rad=SCR.rad
for i=#mino,1,-1 do
local M=mino[i]
M.d=M.d+M.v
if M.d>rad*1.05 then
rem(mino,i)
else
M.rotate=M.rotate+M.vr
M.v=M.v*(1+M.d/rad*.05)
end
end
end
function back.draw()
gc_clear(.1,.1,.1)
gc_translate(SCR.cx,SCR.cy)
for i=1,#mino do
local M=mino[i]
local c=M.color
gc_setColor(c[1],c[2],c[3],.2)
gc_draw(M.block,M.d*cos(M.ang),M.d*sin(M.ang),M.rotate,(12*M.d/SCR.rad)^1.6,nil,M.block:getWidth()/2,M.block:getHeight()/2)
end
gc_translate(-SCR.cx,-SCR.cy)
end
function back.discard()
mino=nil
end
return back