Files
Techmino/parts/backgrounds/wing.lua
C29H25N3O5 e02bb0f23c Multiple Enhancements (See comment) (#413)
* 更改wings背景, 看起来更像翅膀

* 规范中文标点(顺便改不对的tips)

* 字体添加缺少的几个拼音字母
2021-10-26 11:04:21 +08:00

86 lines
2.4 KiB
Lua

--Flandre's wing
local gc=love.graphics
local rnd=math.random
local back={}
local crystal_img,crystals
local wingColor={
{.3,.8,.9,.3},
{.5,1.,.5,.3},
{.9,.9,.3,.3},
{1.,.7,.3,.3},
{1.,.5,.7,.3},
{.7,.3,1.,.3},
{.5,.5,1.,.3},
{.3,.8,.9,.3},
}
local wingHeight={.572,.536,.472,.405,.307,.402,.457,.367}
function back.init()
crystal_img=GC.DO{42,118,
{'setCL',.93,.93,.93},
{'fPoly',21,0,0,29,21,40},
{'setCL',.6,.6,.6},
{'fPoly',0,29,21,118,21,40},
{'fPoly',21,0,42,29,21,40},
{'setCL',.4,.4,.4},
{'fPoly',21,118,42,29,21,40},
}
back.resize()
end
function back.resize()
crystals={}
for i=1,16 do
crystals[i]={
x=i<9 and SCR.w*.05*i or SCR.w*.05*(28-i),
y=SCR.h*(wingHeight[i]or wingHeight[i-8]),
a=0,
va=0,
f=i<9 and .012-i*.0005 or .012-(17-i)*.0005
}
end
end
function back.update()
for i=1,16 do
local B=crystals[i]
B.a=B.a+B.va
B.va=B.va*.986-B.a*B.f
end
end
function back.draw()
gc.clear(.06,.06,.06)
gc.setColor(.12,.12,.12)
gc.setLineWidth(0.02*SCR.h)
gc.line(0.018*SCR.w,0.567*SCR.h,0.101*SCR.w,0.512*SCR.h)
gc.line(0.202*SCR.w,0.369*SCR.h,0.099*SCR.w,0.514*SCR.h)
gc.line(0.201*SCR.w,0.371*SCR.h,0.260*SCR.w,0.212*SCR.h)
gc.line(0.247*SCR.w,0.257*SCR.h,0.307*SCR.w,0.383*SCR.h)
gc.line(0.352*SCR.w,0.436*SCR.h,0.305*SCR.w,0.381*SCR.h)
gc.line(0.344*SCR.w,0.437*SCR.h,0.401*SCR.w,0.307*SCR.h)
gc.line(0.982*SCR.w,0.567*SCR.h,0.899*SCR.w,0.512*SCR.h)
gc.line(0.798*SCR.w,0.369*SCR.h,0.901*SCR.w,0.514*SCR.h)
gc.line(0.799*SCR.w,0.371*SCR.h,0.740*SCR.w,0.212*SCR.h)
gc.line(0.753*SCR.w,0.257*SCR.h,0.693*SCR.w,0.383*SCR.h)
gc.line(0.648*SCR.w,0.436*SCR.h,0.695*SCR.w,0.381*SCR.h)
gc.line(0.656*SCR.w,0.437*SCR.h,0.599*SCR.w,0.307*SCR.h)
local k=SCR.k
for i=1,8 do
gc.setColor(wingColor[i])
local B=crystals[i]
gc.draw(crystal_img,B.x,B.y,B.a,k,k,21,0)
B=crystals[17-i]
gc.draw(crystal_img,B.x,B.y,B.a,-k,k,21,0)
end
end
function back.event(level)
for i=1,8 do
local B=crystals[i]
B.va=B.va+.001*level*(1+rnd())
B=crystals[17-i]
B.va=B.va-.001*level*(1+rnd())
end
end
function back.discard()
crystal_img,crystals=nil
end
return back