From d378e1479da9fad286c9db6f00694c6898ed2bd7 Mon Sep 17 00:00:00 2001 From: MrZ626 <1046101471@qq.com> Date: Thu, 29 Apr 2021 11:04:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E8=83=8C=E6=99=AF=EF=BC=9Ablockfall?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- parts/backgrounds/blockfall.lua | 55 +++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 parts/backgrounds/blockfall.lua diff --git a/parts/backgrounds/blockfall.lua b/parts/backgrounds/blockfall.lua new file mode 100644 index 00000000..2d421fd3 --- /dev/null +++ b/parts/backgrounds/blockfall.lua @@ -0,0 +1,55 @@ +--Block rain +local gc=love.graphics +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%26==0 then + local r=rnd(7) + local B=BLOCKS[r][rnd(0,3)] + local k=(1+rnd()*2)*SCR.rad/1000 + ins(mino,{ + block=B, + texture=SKIN.curText[SETTING.skin[r]], + k=k, + x=(SCR.w)*rnd()-15*#B[1], + y=0, + vy=k*2, + }) + end + for i=#mino,1,-1 do + local M=mino[i] + M.y=M.y+M.vy + if M.y-M.k*#M.block*30>SCR.h then rem(mino,i)end + end +end +function back.draw() + gc.clear(.15,.15,.15) + gc.push("transform") + gc.origin() + gc.setColor(1,1,1,.4) + for i=1,#mino do + local M=mino[i] + local b=M.block + for y=1,#b do + for x=1,#b[1]do + if b[y][x]then + gc.draw(M.texture,M.x+(x-1)*30*M.k,M.y-y*30*M.k,nil,M.k) + end + end + end + end + gc.pop() +end +function back.discard() + mino=nil +end +return back \ No newline at end of file