新背景:blockspace
This commit is contained in:
56
parts/backgrounds/blockspace.lua
Normal file
56
parts/backgrounds/blockspace.lua
Normal file
@@ -0,0 +1,56 @@
|
||||
--Space but tetrominoes
|
||||
local gc=love.graphics
|
||||
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%2==0 then
|
||||
local r=rnd(29)
|
||||
ins(mino,{
|
||||
block=TEXTURE.miniBlock[r],
|
||||
color=minoColor[SETTING.skin[r]],
|
||||
ang=6.2832*rnd(),
|
||||
rotate=6.2832*rnd(),
|
||||
vr=.03-rnd()*.06,
|
||||
d=0,
|
||||
v=1,
|
||||
})
|
||||
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/SCR.rad*.2)
|
||||
end
|
||||
end
|
||||
end
|
||||
function back.draw()
|
||||
gc.clear(.15,.15,.15)
|
||||
gc.push("transform")
|
||||
gc.origin()
|
||||
gc.translate(SCR.w/2,SCR.h/2)
|
||||
for i=1,#mino do
|
||||
local M=mino[i]
|
||||
local c=M.color
|
||||
gc.setColor(c[1],c[2],c[3],.4)
|
||||
gc.draw(M.block,M.d*cos(M.ang),M.d*sin(M.ang),M.rotate,(18*M.d/SCR.rad)^1.6,nil,M.block:getWidth()/2,M.block:getHeight()/2)
|
||||
end
|
||||
gc.pop()
|
||||
end
|
||||
function back.discard()
|
||||
mino=nil
|
||||
end
|
||||
return back
|
||||
@@ -35,7 +35,7 @@ return{
|
||||
end
|
||||
end
|
||||
end,
|
||||
bg="tunnel",bgm="far",
|
||||
bg="blockspace",bgm="far",
|
||||
},
|
||||
slowMark=true,
|
||||
load=function()
|
||||
|
||||
Reference in New Issue
Block a user