0.8.22:Shader Update
This commit is contained in:
497
parts/bg.lua
497
parts/bg.lua
@@ -2,241 +2,302 @@ local gc=love.graphics
|
||||
local int,ceil,rnd,abs=math.floor,math.ceil,math.random,math.abs
|
||||
local max,min,sin,cos=math.max,math.min,math.sin,math.cos
|
||||
|
||||
local BG
|
||||
local scr=scr
|
||||
local BGinit,BGresize,BGupdate,BGdraw,BGdiscard={},{},{},{},{}
|
||||
local BGvars={_G=_G}
|
||||
local BGvars={_G=_G,SHADER=SHADER}
|
||||
|
||||
function BGdraw.none()
|
||||
gc.clear(.15,.15,.15)
|
||||
end
|
||||
local back={}
|
||||
back.none={
|
||||
draw=function()
|
||||
gc.clear(.15,.15,.15)
|
||||
end,
|
||||
}
|
||||
back.grey={
|
||||
draw=function()
|
||||
gc.clear(.3,.3,.3)
|
||||
end,
|
||||
}
|
||||
back.glow={
|
||||
init=function()
|
||||
t=0
|
||||
end,
|
||||
update=function(dt)
|
||||
t=t+dt
|
||||
end,
|
||||
draw=function()
|
||||
local t=(sin(t*.5)+sin(t*.7)+sin(t*.9+1)+sin(t*1.5)+sin(t*2+10))*.08
|
||||
gc.clear(t,t,t)
|
||||
end,
|
||||
}--light-dark
|
||||
back.rgb={
|
||||
init=function()
|
||||
t=0
|
||||
end,
|
||||
update=function(dt)
|
||||
t=t+dt
|
||||
end,
|
||||
draw=function()
|
||||
gc.clear(
|
||||
sin(t*1.2)*.15+.2,
|
||||
sin(t*1.5)*.15+.2,
|
||||
sin(t*1.9)*.15+.2
|
||||
)
|
||||
end,
|
||||
}--Changing pure color
|
||||
back.strap={
|
||||
init=function()
|
||||
t=0
|
||||
end,
|
||||
update=function(dt)
|
||||
t=t+dt
|
||||
end,
|
||||
draw=function()
|
||||
SHADER.strap:send("t",t*.626)
|
||||
gc.setColor(.4,.626,.626)
|
||||
gc.setShader(SHADER.strap)
|
||||
gc.rectangle("fill",0,0,scr.w,scr.h)
|
||||
gc.setShader()
|
||||
end,
|
||||
}--Horizonal ranbow
|
||||
back.flink={
|
||||
init=function()
|
||||
t=0
|
||||
end,
|
||||
update=function(dt)
|
||||
t=t+dt
|
||||
end,
|
||||
draw=function()
|
||||
local t=.13-t%3%1.7
|
||||
if t<.2 then gc.clear(t,t,t)
|
||||
else gc.clear(0,0,0)
|
||||
end
|
||||
end,
|
||||
}--flash after random time
|
||||
back.aura={
|
||||
init=function()
|
||||
t=rnd()*3600
|
||||
BG.resize(scr.w,scr.h)
|
||||
end,
|
||||
resize=function(w,h)
|
||||
SHADER.aura:send("w",w*scr.dpi)
|
||||
SHADER.aura:send("h",h*scr.dpi)
|
||||
end,
|
||||
update=function(dt)
|
||||
t=t+dt
|
||||
end,
|
||||
draw=function()
|
||||
SHADER.aura:send("t",t)
|
||||
gc.setShader(SHADER.aura)
|
||||
gc.rectangle("fill",0,0,scr.w,scr.h)
|
||||
gc.setShader()
|
||||
end,
|
||||
}--cool liquid background
|
||||
back.game1={
|
||||
init=function()
|
||||
t=0
|
||||
BG.resize(scr.w,scr.h)
|
||||
end,
|
||||
resize=function(w,h)
|
||||
SHADER.rainbow:send("w",w*scr.dpi)
|
||||
SHADER.rainbow:send("h",h*scr.dpi)
|
||||
end,
|
||||
update=function(dt)
|
||||
t=t+dt
|
||||
end,
|
||||
draw=function()
|
||||
SHADER.rainbow:send("t",t)
|
||||
gc.setColor(.6,.6,.6)
|
||||
gc.setShader(SHADER.rainbow)
|
||||
gc.rectangle("fill",0,0,scr.w,scr.h)
|
||||
gc.setShader()
|
||||
end,
|
||||
}--Rolling rainbow
|
||||
back.game2={
|
||||
init=function()
|
||||
t=0
|
||||
BG.resize(scr.w,scr.h)
|
||||
end,
|
||||
resize=function(w,h)
|
||||
SHADER.rainbow:send("w",w*scr.dpi)
|
||||
SHADER.rainbow:send("h",h*scr.dpi)
|
||||
end,
|
||||
update=function(dt)
|
||||
t=t+dt
|
||||
end,
|
||||
draw=function()
|
||||
SHADER.rainbow:send("t",t)
|
||||
gc.setColor(.7,.4,.4)
|
||||
gc.setShader(SHADER.rainbow)
|
||||
gc.rectangle("fill",0,0,scr.w,scr.h)
|
||||
gc.setShader()
|
||||
end,
|
||||
}--Red rolling rainbow
|
||||
back.game3={
|
||||
init=function()
|
||||
t=0
|
||||
BG.resize(scr.w,scr.h)
|
||||
end,
|
||||
resize=function(w,h)
|
||||
SHADER.rainbow:send("w",w*scr.dpi)
|
||||
SHADER.rainbow:send("h",h*scr.dpi)
|
||||
end,
|
||||
update=function(dt)
|
||||
t=t+dt
|
||||
end,
|
||||
draw=function()
|
||||
SHADER.rainbow:send("t",t)
|
||||
gc.setColor(.5,.5,.8)
|
||||
gc.setShader(SHADER.rainbow)
|
||||
gc.rectangle("fill",0,0,scr.w,scr.h)
|
||||
gc.setShader()
|
||||
end,
|
||||
}--Blue rolling rainbow
|
||||
back.game4={
|
||||
init=function()
|
||||
t=0
|
||||
end,
|
||||
update=function(dt)
|
||||
t=t+dt
|
||||
end,
|
||||
draw=function()
|
||||
SHADER.strap:send("t",t*1.26)
|
||||
gc.setColor(.5,.626,.74)
|
||||
gc.setShader(SHADER.strap)
|
||||
gc.rectangle("fill",0,0,scr.w,scr.h)
|
||||
gc.setShader()
|
||||
end,
|
||||
}--Blue strap
|
||||
back.game5={
|
||||
init=function()
|
||||
t=0
|
||||
end,
|
||||
update=function(dt)
|
||||
t=t+dt
|
||||
end,
|
||||
draw=function()
|
||||
local t=2.5-t%20%6%2.5
|
||||
if t<.3 then gc.clear(t,t,t)
|
||||
else gc.clear(0,0,0)
|
||||
end
|
||||
end,
|
||||
}--Lightning
|
||||
|
||||
function BGdraw.grey()
|
||||
gc.clear(.3,.3,.3)
|
||||
end
|
||||
|
||||
function BGinit.glow()
|
||||
t=0
|
||||
end
|
||||
function BGupdate.glow(dt)
|
||||
t=t+dt
|
||||
end
|
||||
function BGdraw.glow()
|
||||
local t=(sin(t*.5)+sin(t*.7)+sin(t*.9+1)+sin(t*1.5)+sin(t*2+10))*.08
|
||||
gc.clear(t,t,t)
|
||||
end
|
||||
|
||||
function BGinit.rgb()
|
||||
t=0
|
||||
end
|
||||
function BGupdate.rgb(dt)
|
||||
t=t+dt
|
||||
end
|
||||
function BGdraw.rgb()
|
||||
gc.clear(
|
||||
sin(t*1.2)*.15+.2,
|
||||
sin(t*1.5)*.15+.2,
|
||||
sin(t*1.9)*.15+.2
|
||||
)
|
||||
end
|
||||
|
||||
function BGinit.strap()
|
||||
t=0
|
||||
img=_G.IMG.gameBG2
|
||||
end
|
||||
function BGupdate.strap(dt)
|
||||
t=t+dt
|
||||
end
|
||||
function BGdraw.strap()
|
||||
gc.setColor(.5,.5,.5)
|
||||
local x=t%16*-64
|
||||
repeat
|
||||
gc.draw(img,x,0,nil,8,scr.h)
|
||||
x=x+1024--image width*8
|
||||
until x>=scr.w
|
||||
end
|
||||
|
||||
function BGinit.flink()
|
||||
t=0
|
||||
end
|
||||
function BGupdate.flink(dt)
|
||||
t=t+dt
|
||||
end
|
||||
function BGdraw.flink()
|
||||
local t=.13-t%3%1.7
|
||||
if t<.2 then gc.clear(t,t,t)
|
||||
else gc.clear(0,0,0)
|
||||
end
|
||||
end
|
||||
|
||||
function BGinit.game1()
|
||||
t=0
|
||||
img=_G.IMG.gameBG1
|
||||
end
|
||||
function BGupdate.game1(dt)
|
||||
t=t+dt
|
||||
end
|
||||
function BGdraw.game1()
|
||||
gc.setColor(.5,.5,.5)
|
||||
gc.draw(img,scr.w*.5,scr.h*.5,t*.15,scr.rad*.0625,nil,16,16)
|
||||
end--Rainbow
|
||||
|
||||
function BGinit.game2()
|
||||
t=0
|
||||
img=_G.IMG.gameBG1
|
||||
end
|
||||
function BGupdate.game2(dt)
|
||||
t=t+dt
|
||||
end
|
||||
function BGdraw.game2()
|
||||
gc.setColor(.5,.26,.26)
|
||||
gc.draw(img,scr.w*.5,scr.h*.5,t*.15,scr.rad*.0625,nil,16,16)
|
||||
end--Red rainbow
|
||||
|
||||
function BGinit.game3()
|
||||
t=0
|
||||
img=_G.IMG.gameBG1
|
||||
end
|
||||
function BGupdate.game3(dt)
|
||||
t=t+dt
|
||||
end
|
||||
function BGdraw.game3()
|
||||
gc.setColor(.4,.4,.8)
|
||||
gc.draw(img,scr.w*.5,scr.h*.5,t*.15,scr.rad*.0625,nil,16,16)
|
||||
end--Blue rainbow
|
||||
|
||||
function BGinit.game4()
|
||||
t=0
|
||||
img=_G.IMG.gameBG2
|
||||
end
|
||||
function BGupdate.game4(dt)
|
||||
t=t+dt
|
||||
end
|
||||
function BGdraw.game4()
|
||||
gc.setColor(.05,.4,.4)
|
||||
local x=t%8*-128
|
||||
repeat
|
||||
gc.draw(img,x,0,nil,8,scr.h)
|
||||
x=x+1024--image width*8
|
||||
until x>=scr.w
|
||||
end--Fast strap
|
||||
|
||||
function BGinit.game5()
|
||||
t=0
|
||||
end
|
||||
function BGupdate.game5(dt)
|
||||
t=t+dt
|
||||
end
|
||||
function BGdraw.game5()
|
||||
local t=2.5-t%20%6%2.5
|
||||
if t<.3 then gc.clear(t,t,t)
|
||||
else gc.clear(0,0,0)
|
||||
end
|
||||
end--Lightning
|
||||
|
||||
function BGinit.game6()
|
||||
t=0
|
||||
colorLib=_G.SKIN.libColor
|
||||
colorSet=_G.setting.skin
|
||||
miniBlock=_G.miniBlock
|
||||
end
|
||||
function BGupdate.game6(dt)
|
||||
t=t+dt
|
||||
end
|
||||
local blocks=require("parts/mino")
|
||||
local scs=require("parts/spinCenters")
|
||||
function BGdraw.game6()
|
||||
local t=1.2-t%10%3%1.2
|
||||
if t<.3 then gc.clear(t,t,t)
|
||||
else gc.clear(0,0,0)
|
||||
end
|
||||
local R=7-int(t*.5)%7
|
||||
local _=colorLib[colorSet[R]]
|
||||
gc.setColor(_[1],_[2],_[3],.1)
|
||||
gc.draw(miniBlock[R],640,360,t%3.1416*6,400,400,scs[R][0][2]-.5,#blocks[R][0]-scs[R][0][1]+.5)
|
||||
end--Fast lightning&spining tetromino
|
||||
back.game6={
|
||||
init=function()
|
||||
t=0
|
||||
colorLib=_G.SKIN.libColor
|
||||
colorSet=_G.setting.skin
|
||||
miniBlock=_G.miniBlock
|
||||
end,
|
||||
update=function(dt)
|
||||
t=t+dt
|
||||
end,
|
||||
draw=function()
|
||||
local t=1.2-t%10%3%1.2
|
||||
if t<.3 then gc.clear(t,t,t)
|
||||
else gc.clear(0,0,0)
|
||||
end
|
||||
local R=7-int(t*.5)%7
|
||||
local _=colorLib[colorSet[R]]
|
||||
gc.setColor(_[1],_[2],_[3],.1)
|
||||
gc.draw(miniBlock[R],640,360,t%3.1416*6,400,400,scs[R][0][2]-.5,#blocks[R][0]-scs[R][0][1]+.5)
|
||||
end,
|
||||
}--Fast lightning + spining tetromino
|
||||
|
||||
local matrixT={}for i=1,50 do matrixT[i]={}for j=1,50 do matrixT[i][j]=love.math.noise(i,j)+2 end end
|
||||
function BGinit.matrix()
|
||||
t=0
|
||||
end
|
||||
function BGupdate.matrix(dt)
|
||||
t=t+dt
|
||||
end
|
||||
function BGdraw.matrix()
|
||||
gc.scale(scr.k)
|
||||
gc.clear(.15,.15,.15)
|
||||
local _=ceil(scr.h/80)
|
||||
for i=1,ceil(scr.w/80)do
|
||||
for j=1,_ do
|
||||
gc.setColor(1,1,1,sin(i+matrixT[i][j]*t)*.1+.1)
|
||||
gc.rectangle("fill",80*i,80*j,-80,-80)
|
||||
back.matrix={
|
||||
init=function()
|
||||
t=rnd()*3600
|
||||
end,
|
||||
update=function(dt)
|
||||
t=t+dt
|
||||
end,
|
||||
draw=function()
|
||||
gc.scale(scr.k)
|
||||
gc.clear(.15,.15,.15)
|
||||
local Y=ceil(scr.h*scr.dpi/80)
|
||||
for x=1,ceil(scr.w*scr.dpi/80)do
|
||||
for y=1,Y do
|
||||
gc.setColor(1,1,1,sin(x+matrixT[x][y]*t)*.1+.1)
|
||||
gc.rectangle("fill",80*x,80*y,-80,-80)
|
||||
end
|
||||
end
|
||||
end
|
||||
gc.scale(1/scr.k)
|
||||
end
|
||||
gc.scale(1/scr.k)
|
||||
end,
|
||||
}
|
||||
|
||||
back.space={
|
||||
init=function()
|
||||
stars={}
|
||||
W,H=scr.w+20,scr.h+20
|
||||
BG.resize(scr.w,scr.h)
|
||||
end,
|
||||
resize=function(w,h)
|
||||
local S=stars
|
||||
for i=1,1260,5 do
|
||||
local s=rnd(26,40)*.1
|
||||
S[i]=s*scr.k --size
|
||||
S[i+1]=rnd(W)-10 --x
|
||||
S[i+2]=rnd(H)-10 --y
|
||||
S[i+3]=(rnd()-.5)*.01*s --vx
|
||||
S[i+4]=(rnd()-.5)*.01*s --vy
|
||||
end--800 var
|
||||
end,
|
||||
update=function(dt)
|
||||
local S=stars
|
||||
for i=1,1260,5 do
|
||||
S[i+1]=(S[i+1]+S[i+3])%W
|
||||
S[i+2]=(S[i+2]+S[i+4])%H
|
||||
end--star moving
|
||||
end,
|
||||
draw=function()
|
||||
gc.clear(.2,.2,.2)
|
||||
if not stars[1]then return end
|
||||
gc.translate(-10,-10)
|
||||
gc.setColor(.8,.8,.8)
|
||||
for i=1,1260,5 do
|
||||
local s=stars
|
||||
local x,y=s[i+1],s[i+2]
|
||||
s=s[i]
|
||||
gc.rectangle("fill",x,y,s,s)
|
||||
end
|
||||
gc.translate(10,10)
|
||||
end,
|
||||
discard=function()
|
||||
stars={}
|
||||
end,
|
||||
}
|
||||
|
||||
function BGinit.space()
|
||||
stars={}
|
||||
for i=1,2600,5 do
|
||||
local s=rnd(4)
|
||||
stars[i]=s --size
|
||||
stars[i+1]=rnd(W)-10 --x
|
||||
stars[i+2]=rnd(H)-10 --y
|
||||
stars[i+3]=(rnd()-.5)*.01*s --vx
|
||||
stars[i+4]=(rnd()-.5)*.01*s --vy
|
||||
end--800 var
|
||||
end
|
||||
function BGresize.space(w,h)
|
||||
W,H=w+20,h+20
|
||||
BGinit.space()
|
||||
end
|
||||
function BGupdate.space(dt)
|
||||
local s=stars
|
||||
for i=1,2600,5 do
|
||||
s[i+1]=(s[i+1]+s[i+3])%W
|
||||
s[i+2]=(s[i+2]+s[i+4])%H
|
||||
end--star moving
|
||||
end
|
||||
function BGdraw.space()
|
||||
gc.clear(.2,.2,.2)
|
||||
if not stars[1]then return end
|
||||
gc.translate(-10,-10)
|
||||
gc.setColor(.8,.8,.8)
|
||||
for i=1,2600,5 do
|
||||
local s=stars
|
||||
local x,y=s[i+1],s[i+2]
|
||||
s=s[i]
|
||||
gc.rectangle("fill",x,y,s,s)
|
||||
end
|
||||
gc.translate(10,10)
|
||||
end
|
||||
function BGdiscard.space()
|
||||
stars={}
|
||||
end
|
||||
for _,bg in next,back do
|
||||
if not bg.init then bg.init= NULL end setfenv(bg.init ,BGvars)
|
||||
if not bg.resize then bg.resize= NULL end setfenv(bg.resize ,BGvars)
|
||||
if not bg.update then bg.update= NULL end setfenv(bg.update ,BGvars)
|
||||
if not bg.discard then bg.discard=NULL end setfenv(bg.discard ,BGvars)
|
||||
if not bg.draw then bg.draw= NULL end setfenv(bg.draw ,BGvars)
|
||||
end--make BG vars invisible
|
||||
|
||||
for k in next,BGdraw do
|
||||
if BGinit[k]then setfenv(BGinit[k], BGvars)end
|
||||
if BGresize[k]then setfenv(BGresize[k], BGvars)end
|
||||
if BGupdate[k]then setfenv(BGupdate[k], BGvars)end
|
||||
if BGdraw[k]then setfenv(BGdraw[k], BGvars)end
|
||||
if BGdiscard[k]then setfenv(BGdiscard[k], BGvars)end
|
||||
end
|
||||
|
||||
local BG={
|
||||
BG={
|
||||
cur="none",
|
||||
resize=NULL,
|
||||
update=NULL,
|
||||
draw=BGdraw.none,
|
||||
draw=back.none.draw,
|
||||
}
|
||||
function BG.set(bg)
|
||||
if bg==BG.cur or not setting.bg then return end
|
||||
if BG.discard then
|
||||
BG.discard()
|
||||
collectgarbage()
|
||||
end
|
||||
BG.cur=bg
|
||||
local _=BGdiscard[BG.cur]if _ then _()collectgarbage()end
|
||||
BG.resize=BGresize[bg]or NULL;BG.resize(scr.w,scr.h)
|
||||
_=BGinit[bg]if _ then _()end
|
||||
BG.update=BGupdate[bg]or NULL
|
||||
BG.draw=BGdraw[bg]
|
||||
end
|
||||
bg=back[bg]
|
||||
|
||||
BG.init=bg.init or NULL
|
||||
BG.resize=bg.resize or NULL
|
||||
BG.update=bg.update or NULL
|
||||
BG.discard=bg.discard or NULL
|
||||
BG.draw=bg.draw or NULL
|
||||
BG.init()
|
||||
end
|
||||
return BG
|
||||
@@ -1,9 +1,10 @@
|
||||
local rem=table.remove
|
||||
|
||||
local BGM={}
|
||||
-- BGM.nowPlay=[str:playing ID]
|
||||
-- BGM.suspend=[str:pausing ID]
|
||||
-- BGM.playing=[src:playing SRC]
|
||||
local BGM={
|
||||
--nowPlay=[str:playing ID]
|
||||
--suspend=[str:pausing ID]
|
||||
--playing=[src:playing SRC]
|
||||
}
|
||||
BGM.list={
|
||||
"blank","way","race","newera","push","reason","infinite",
|
||||
"secret7th","secret8th",
|
||||
@@ -11,11 +12,14 @@ BGM.list={
|
||||
"rockblock","cruelty","final","8-bit happiness","end",
|
||||
}
|
||||
BGM.len=#BGM.list
|
||||
function BGM.loadOne(_)
|
||||
local _=BGM.list[_]
|
||||
BGM.list[_]=love.audio.newSource("/BGM/".._..".ogg","stream")
|
||||
BGM.list[_]:setLooping(true)
|
||||
BGM.list[_]:setVolume(0)
|
||||
function BGM.loadOne(N)
|
||||
N=BGM.list[N]
|
||||
local file="/BGM/"..N..".ogg"
|
||||
if love.filesystem.getInfo(file)then
|
||||
BGM.list[N]=love.audio.newSource(file,"stream")
|
||||
BGM.list[N]:setLooping(true)
|
||||
BGM.list[N]:setVolume(0)
|
||||
end
|
||||
end
|
||||
function BGM.loadAll()
|
||||
for i=1,#BGM.list do
|
||||
@@ -27,7 +31,7 @@ function BGM.play(s)
|
||||
BGM.playing=BGM.list[s]
|
||||
BGM.suspend,BGM.nowPlay=s
|
||||
return
|
||||
elseif not s then
|
||||
elseif not s or not BGM.list[s]then
|
||||
return
|
||||
end
|
||||
if BGM.nowPlay~=s then
|
||||
|
||||
107
parts/default_data.lua
Normal file
107
parts/default_data.lua
Normal file
@@ -0,0 +1,107 @@
|
||||
local s={
|
||||
--game
|
||||
das=10,arr=2,
|
||||
sddas=0,sdarr=2,
|
||||
ihs=true,irs=true,ims=true,
|
||||
reTime=4,
|
||||
maxNext=6,
|
||||
quickR=true,
|
||||
swap=true,
|
||||
fine=false,
|
||||
autoPause=true,
|
||||
lang=1,
|
||||
skinSet=1,
|
||||
skin={1,5,8,2,10,3,7,1,5,5,1,8,2,10,3,7,10,7,8,2,8,2,1,5,3},
|
||||
face={},
|
||||
|
||||
--graphic
|
||||
ghost=true,center=true,
|
||||
smooth=true,grid=false,
|
||||
bagLine=false,
|
||||
lockFX=2,
|
||||
dropFX=3,
|
||||
clearFX=2,
|
||||
shakeFX=2,
|
||||
atkFX=3,
|
||||
frameMul=100,
|
||||
|
||||
text=true,
|
||||
warn=true,
|
||||
fullscreen=false,
|
||||
bg=true,
|
||||
powerInfo=false,
|
||||
|
||||
--sound
|
||||
sfx=10,bgm=7,
|
||||
vib=0,voc=0,
|
||||
stereo=6,
|
||||
|
||||
--virtualkey
|
||||
VKSFX=3,--SFX volume
|
||||
VKVIB=0,--VIB
|
||||
VKSwitch=false,--if disp
|
||||
VKTrack=false,--if tracked
|
||||
VKDodge=false,--if dodge
|
||||
VKTchW=3,--Touch-Pos Weight
|
||||
VKCurW=4,--Cur-Pos Weight
|
||||
VKIcon=true,--if disp icon
|
||||
VKAlpha=3,
|
||||
}
|
||||
for i=1,25 do
|
||||
s.face[i]=0
|
||||
end
|
||||
setting=s
|
||||
|
||||
s={
|
||||
version=gameVersion,
|
||||
run=0,game=0,time=0,
|
||||
key=0,rotate=0,hold=0,
|
||||
extraPiece=0,extraRate=0,
|
||||
piece=0,row=0,dig=0,
|
||||
atk=0,digatk=0,send=0,recv=0,pend=0,
|
||||
clear={},clear_B={},clear_S={0,0,0,0,0},
|
||||
spin={},spin_B={},spin_S={0,0,0,0,0},
|
||||
pc=0,hpc=0,b2b=0,b3b=0,score=0,
|
||||
lastPlay=1,--last played mode ID
|
||||
}
|
||||
for i=1,25 do
|
||||
s.clear_B[i]=0
|
||||
s.spin_B[i]=0
|
||||
s.clear[i]={0,0,0,0,0}
|
||||
s.spin[i]={0,0,0,0,0}
|
||||
end
|
||||
stat=s
|
||||
|
||||
keyMap={
|
||||
{"left","right","x","z","c","up","down","space","tab","r"},{},
|
||||
--keyboard
|
||||
{"dpleft","dpright","a","b","y","dpup","dpdown","rightshoulder","x","leftshoulder"},{},
|
||||
--joystick
|
||||
}
|
||||
for i=1,#keyMap do for j=1,20 do
|
||||
if not keyMap[i][j]then keyMap[i][j]=""end
|
||||
end end
|
||||
|
||||
VK_org={--Original virtualkey set,for restore VKs' position before each game
|
||||
{ava=true, x=80, y=720-200, r=80},--moveLeft
|
||||
{ava=true, x=320, y=720-200, r=80},--moveRight
|
||||
{ava=true, x=1280-80, y=720-200, r=80},--rotRight
|
||||
{ava=true, x=1280-200, y=720-80, r=80},--rotLeft
|
||||
{ava=true, x=1280-200, y=720-320, r=80},--rot180
|
||||
{ava=true, x=200, y=720-320, r=80},--hardDrop
|
||||
{ava=true, x=200, y=720-80, r=80},--softDrop
|
||||
{ava=true, x=1280-320, y=720-200, r=80},--hold
|
||||
{ava=true, x=1280-80, y=280, r=80},--func
|
||||
{ava=true, x=80, y=280, r=80},--restart
|
||||
{ava=false, x=100, y=50, r=80},--insLeft
|
||||
{ava=false, x=200, y=50, r=80},--insRight
|
||||
{ava=false, x=300, y=50, r=80},--insDown
|
||||
{ava=false, x=400, y=50, r=80},--down1
|
||||
{ava=false, x=500, y=50, r=80},--down4
|
||||
{ava=false, x=600, y=50, r=80},--down10
|
||||
{ava=false, x=700, y=50, r=80},--dropLeft
|
||||
{ava=false, x=800, y=50, r=80},--dropRight
|
||||
{ava=false, x=900, y=50, r=80},--addToLeft
|
||||
{ava=false, x=1000, y=50, r=80},--addToRight
|
||||
}
|
||||
virtualkey={}for i=1,#VK_org do virtualkey[i]={}end
|
||||
@@ -41,14 +41,14 @@ local function dumpTable(L,t)
|
||||
end
|
||||
elseif T=="string"then k=k.."="
|
||||
elseif T=="boolean"then k="["..k.."]="
|
||||
else error("Error key type!")
|
||||
else assert(false,"Error key type!")
|
||||
end
|
||||
T=type(v)
|
||||
if T=="number"then v=tostring(v)
|
||||
elseif T=="string"then v="\""..v.."\""
|
||||
elseif T=="table"then v=dumpTable(v,t+1)
|
||||
elseif T=="boolean"then v=tostring(v)
|
||||
else error("Error data type!")
|
||||
else assert(false,"Error data type!")
|
||||
end
|
||||
s=s..tabs[t]..k..v..",\n"
|
||||
end
|
||||
|
||||
@@ -17,8 +17,7 @@ local IMG={
|
||||
miyaF3="miya/f3.png",
|
||||
miyaF4="miya/f4.png",
|
||||
|
||||
gameBG1="BG/bg1.png",
|
||||
gameBG2="BG/bg2.png",
|
||||
electric="mess/electric.png",
|
||||
}
|
||||
local list={}
|
||||
local count=0
|
||||
|
||||
@@ -62,6 +62,11 @@ local OspinList={
|
||||
{121,6,0, 1,-1,1},{112,6,0, 2,-1,2},{122,6,0, 1,-2,2},--O
|
||||
{323,6,0,-1,-1,2},{332,6,0,-2,-1,2},{322,6,0,-1,-2,2},--O
|
||||
}--{key,id,dir,dx,dy,freeLv(0=unmovable,1=L/R unmovable,2=free)}
|
||||
local XspinList={
|
||||
{{ 1,-1},{ 1, 0},{ 1, 1}},
|
||||
{{ 0,-1},{ 0,-2},{ 0, 1}},
|
||||
{{-1,-1},{-1, 0},{-1, 1}},
|
||||
}
|
||||
local TRS={
|
||||
{
|
||||
[01]={{-1, 0},{-1, 1},{ 0,-2},{-1, 2},{ 0, 1}},
|
||||
@@ -89,8 +94,8 @@ local TRS={
|
||||
[23]={{ 1, 0},{ 1,-1},{ 1, 1},{ 0,-2},{ 1,-2},{ 1,-1}},
|
||||
[02]={{-1, 0},{ 1, 0},{ 0,-1},{ 0, 1}},
|
||||
[20]={{ 1, 0},{-1, 0},{ 0, 1},{ 0,-1}},
|
||||
[13]={{ 0,-1},{ 1, 0},{ 0, 1}},
|
||||
[31]={{ 0, 1},{-1, 0},{ 0,-1}},
|
||||
[13]={{ 0,-1},{ 0, 1},{ 1, 0}},
|
||||
[31]={{ 0, 1},{ 0,-1},{-1, 0}},
|
||||
},--J
|
||||
{},--L
|
||||
{
|
||||
@@ -250,7 +255,19 @@ local TRS={
|
||||
[31]={{ 0,-1},{ 1, 0}},
|
||||
},--W
|
||||
function(P,d)
|
||||
return
|
||||
if P.human then SFX.fieldPlay("rotate",nil,P)end
|
||||
if P.gameEnv.easyFresh then P:freshLockDelay()end
|
||||
local iki=XspinList[d]
|
||||
for test=1,#iki do
|
||||
local x,y=P.curX+iki[test][1],P.curY+iki[test][2]
|
||||
if not P:ifoverlap(P.cur.bk,x,y)then
|
||||
P.curX,P.curY=x,y
|
||||
P.spinLast=1
|
||||
P:freshgho()
|
||||
P.stat.rotate=P.stat.rotate+1
|
||||
return
|
||||
end
|
||||
end
|
||||
end,--X
|
||||
{
|
||||
[01]={{-1, 0},{-1, 1},{ 0,-3},{-1, 1},{-1, 2},{ 0, 1}},
|
||||
@@ -259,8 +276,8 @@ local TRS={
|
||||
[30]={{ 0, 1},{-1, 1},{ 1, 0},{-1,-1},{ 0, 2},{-1, 2},{ 0, 3},{-1, 3},{ 1,-1}},
|
||||
[12]={{ 1, 0},{ 1,-1},{ 0,-1},{ 1,-2},{ 0,-2},{ 1, 1},{-1, 0},{ 0, 2},{ 1, 2}},
|
||||
[21]={{-1, 0},{-1, 1},{ 0, 1},{-1, 2},{ 0, 2},{-1,-1},{ 1, 0},{ 0,-2},{-1,-2}},
|
||||
[32]={{-1, 0},{-1, 1},{-1,-1},{ 0, 2},{-1, 2},{ 0,-2}},
|
||||
[23]={{ 1, 0},{ 1,-1},{ 1, 1},{ 0,-2},{ 1,-2},{ 0, 2}},
|
||||
[32]={{-1, 0},{-1, 1},{-1,-1},{ 1, 0},{ 0, 2},{-1, 2},{ 0,-2}},
|
||||
[23]={{ 1, 0},{ 1,-1},{ 1, 1},{-1, 0},{ 0,-2},{ 1,-2},{ 0, 2}},
|
||||
[02]={{ 0,-1},{ 1,-1},{-1, 0},{ 2,-1},{ 0, 1}},
|
||||
[20]={{ 0, 1},{-1, 1},{ 1, 0},{-2, 1},{ 0,-1}},
|
||||
[13]={{-1, 0},{-1,-1},{ 0, 1},{-1,-2}},
|
||||
|
||||
@@ -139,21 +139,32 @@ local langList={
|
||||
"全/半清:",
|
||||
},
|
||||
help={
|
||||
"好像也没啥好帮助的吧?就当是关于了",
|
||||
"既然你能玩到这个游戏,应该也不需要什么帮助吧?",
|
||||
"这只是一个普通的方块游戏,请勿称此游戏为某某某方块",
|
||||
"从TO/C2/KOS/TGM3/JS等方块获得过灵感",
|
||||
"",
|
||||
"使用LOVE2D引擎",
|
||||
"作者:MrZ 邮箱:1046101471@qq.com",
|
||||
"程序:MrZ 美术:MrZ 音乐:MrZ 音效:MrZ 语音:MrZ/Miya",
|
||||
"特别感谢:Flyz,Farter,196,Teatube,[所有内测人员]和 你!",
|
||||
"",
|
||||
"错误或者建议请附带截图发送到内测群或者作者邮箱~",
|
||||
"仅通过唯一内测群822023725进行免费下载/更新",
|
||||
"其他渠道获得游戏皆有被修改/植入病毒的风险,程序只申请了震动&联网权限!",
|
||||
"仅通过内测群822023725进行免费下载/更新",
|
||||
"其他渠道获得游戏皆有被修改/加广告/植入病毒的风险,程序只申请了震动&联网权限!",
|
||||
"若由于被修改的本游戏产生的各种损失作者不负责(我怎么负责啊跟我有啥关系)",
|
||||
"请从正规途径获得最新版,游戏现为免费,不过有打赏当然感谢啦~",
|
||||
},
|
||||
staff={
|
||||
"作者:MrZ 邮箱:1046101471@qq.com",
|
||||
"",
|
||||
"使用LOVE2D引擎",
|
||||
"",
|
||||
"程序:MrZ, (FinnTenzor)",
|
||||
"美术:MrZ, (Gnyar)",
|
||||
"音乐:MrZ, (T0722)",
|
||||
"音效:MrZ",
|
||||
"语音:Miya, (MrZ)",
|
||||
"",
|
||||
"特别感谢:",
|
||||
"Flyz, Farter, 蕴空之灵,",
|
||||
"Teatube, [所有内测人员]",
|
||||
},
|
||||
used=[[
|
||||
使用工具:
|
||||
Beepbox
|
||||
@@ -249,6 +260,7 @@ local langList={
|
||||
atkFX="攻击特效等级",
|
||||
frame="绘制帧率",
|
||||
text="消行文本",
|
||||
warn="死亡预警",
|
||||
fullscreen="全屏",
|
||||
bg="背景",
|
||||
power="电量显示",
|
||||
@@ -321,10 +333,14 @@ local langList={
|
||||
back="返回",
|
||||
},--langName added later
|
||||
help={
|
||||
his="历史",
|
||||
staff="制作人员",
|
||||
his="更新历史",
|
||||
qq="作者QQ",
|
||||
back="返回",
|
||||
},
|
||||
staff={
|
||||
back="返回",
|
||||
},
|
||||
history={
|
||||
prev="↑",
|
||||
next="↓",
|
||||
@@ -369,8 +385,8 @@ local langList={
|
||||
{"隐形", "半隐", "不强大脑"},
|
||||
{"隐形", "全隐", "挺强大脑"},
|
||||
{"隐形", "瞬隐", "很强大脑"},
|
||||
{"隐形", "瞬隐+", "超强大脑"},
|
||||
{"隐形", "啥都不剩隐","最强大脑"},
|
||||
{"隐形", "瞬隐+", "最强大脑"},
|
||||
{"隐形", "", "你准备好了吗"},
|
||||
{"高速经典", "CTWC", "高速经典"},
|
||||
{"生存", "简单", "你能存活多久?"},
|
||||
{"生存", "普通", "你能存活多久?"},
|
||||
@@ -408,7 +424,7 @@ local langList={
|
||||
{"无尽:挖掘", "", "挖呀挖呀挖"},
|
||||
{"自定义", "普通", "画点什么然后把它消除!"},
|
||||
{"自定义", "拼图", "画点什么然后把它拼出来吧!"},
|
||||
{"竞速", "五联块", "不可能的任务"},
|
||||
{"竞速", "五联块", "伤脑筋十八块"},
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -549,21 +565,31 @@ local langList={
|
||||
"全/半清:",
|
||||
},
|
||||
help={
|
||||
"好像也没啥好帮助的吧?就当是关于了",
|
||||
"既然你能玩到这个游戏,应该也不需要什么帮助吧?",
|
||||
"这只是一个普通的方块游戏,请勿称此游戏为某某某方块",
|
||||
"从TO/C2/KOS/TGM3/JS等方块获得过灵感",
|
||||
"",
|
||||
"使用LOVE2D引擎",
|
||||
"作者:MrZ 邮箱:1046101471@qq.com",
|
||||
"程序:MrZ 美术:MrZ 音乐:MrZ 音效:MrZ 语音:MrZ/Miya",
|
||||
"特别感谢:Flyz,Farter,196,Teatube,[所有内测人员]和 你!",
|
||||
"",
|
||||
"错误或者建议请附带截图发送到内测群或者作者邮箱~",
|
||||
"仅通过内测群822023725进行免费下载/更新",
|
||||
"其他渠道获得游戏皆有被修改/植入病毒的风险,程序只申请了震动&联网权限!",
|
||||
"其他渠道获得游戏皆有被修改/加广告/植入病毒的风险,程序只申请了震动&联网权限!",
|
||||
"若由于被修改的本游戏产生的各种损失作者不负责(我怎么负责啊跟我有啥关系)",
|
||||
"请从正规途径获得最新版,游戏现为免费,不过有打赏当然感谢啦~",
|
||||
},
|
||||
staff={
|
||||
"作者:MrZ 邮箱:1046101471@qq.com",
|
||||
"",
|
||||
"使用LOVE2D引擎",
|
||||
"",
|
||||
"程序:MrZ, (FinnTenzor)",
|
||||
"美术:MrZ, (Gnyar)",
|
||||
"音乐:MrZ, (T0722)",
|
||||
"音效:MrZ",
|
||||
"语音:Miya, (MrZ)",
|
||||
"",
|
||||
"特别感谢:",
|
||||
"Flyz, Farter, 蕴空之灵,",
|
||||
"Teatube, [所有内测人员]",
|
||||
},
|
||||
used=[[
|
||||
使用工具:
|
||||
Beepbox
|
||||
@@ -659,6 +685,7 @@ local langList={
|
||||
atkFX="攻击特效等级",
|
||||
frame="绘制帧率",
|
||||
text="消行文本",
|
||||
warn="死亡预警",
|
||||
fullscreen="全屏",
|
||||
bg="背景",
|
||||
power="电量显示",
|
||||
@@ -731,10 +758,14 @@ local langList={
|
||||
back="返回",
|
||||
},--langName added later
|
||||
help={
|
||||
his="历史",
|
||||
staff="制作人员",
|
||||
his="更新历史",
|
||||
qq="作者QQ",
|
||||
back="返回",
|
||||
},
|
||||
staff={
|
||||
back="返回",
|
||||
},
|
||||
history={
|
||||
prev="↑",
|
||||
next="↓",
|
||||
@@ -780,7 +811,7 @@ local langList={
|
||||
{"隐形", "全隐", "挺强大脑"},
|
||||
{"隐形", "瞬隐", "很强大脑"},
|
||||
{"隐形", "瞬隐+", "超强大脑"},
|
||||
{"隐形", "啥都不剩隐","最强大脑"},
|
||||
{"隐形", "", "你准备好了吗"},
|
||||
{"高速经典", "CTWC", "高速经典"},
|
||||
{"生存", "简单", "你能存活多久?"},
|
||||
{"生存", "普通", "你能存活多久?"},
|
||||
@@ -818,7 +849,7 @@ local langList={
|
||||
{"无尽:挖掘", "", "挖呀挖呀挖"},
|
||||
{"自定义", "普通", "画点什么然后把它消除!"},
|
||||
{"自定义", "拼图", "画点什么然后把它拼出来吧!"},
|
||||
{"竞速", "五联块", "不可能的任务"},
|
||||
{"竞速", "五联块", "伤脑筋十八块"},
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -956,21 +987,31 @@ local langList={
|
||||
"PC/HPC:",
|
||||
},
|
||||
help={
|
||||
"Doesn't this seem to be of \"any help\", right?",
|
||||
"Now you can play this, you are probabaly do not need \"help\"?",
|
||||
"This is just an ordinary block game, not a certain one.",
|
||||
"It plays like TO/C2/KOS/TGM3 and others.",
|
||||
"",
|
||||
"Made with LOVE2D",
|
||||
"Author: MrZ E-mail: 1046101471@qq.com",
|
||||
"Program: MrZ Art: MrZ Music: MrZ SFX: MrZ Voice: MrZ/Miya",
|
||||
"Special thanks to Flyz, Farter, 196, Teatube, [all testers] and you!",
|
||||
"",
|
||||
"bug reports/suggestions, sent to the author's testing group or email ~",
|
||||
"This is a free download available only through discord.gg/f9pUvkh",
|
||||
"The game downloaded from other sources may contain viruses,",
|
||||
"and only vibration & networking permissions are needed for mobile versions!",
|
||||
"The author is not responsible for any losses from modifying the game.",
|
||||
},
|
||||
staff={
|
||||
"Author: MrZ E-mail: 1046101471@qq.com",
|
||||
"",
|
||||
"Powered by LOVE2D",
|
||||
"",
|
||||
"Program: MrZ, (FinnTenzor)",
|
||||
"Art: MrZ, (Gnyar)",
|
||||
"Music: MrZ, (T0722)",
|
||||
"Sound: MrZ",
|
||||
"Voice: Miya, (MrZ)",
|
||||
"",
|
||||
"Secial Thanks:",
|
||||
"Flyz, Farter, 蕴空之灵,",
|
||||
"Teatube, [All test staff]",
|
||||
},
|
||||
used="Tool used:\n\tBeepbox\n\tGFIE\n\tGoldwave\nLib used:\n\tCold_Clear[MinusKelvin]\n\tsimple-love-lights[dylhunn]",
|
||||
support="Support author",
|
||||
group="Official QQ Group(if not hacked):822023725",
|
||||
@@ -1058,6 +1099,7 @@ local langList={
|
||||
atkFX="ATK. FX level",
|
||||
frame="Render Frame Rate",
|
||||
text="Action Text",
|
||||
warn="Death Alert",
|
||||
fullscreen="Full Screen",
|
||||
bg="Background",
|
||||
power="Power Info.",
|
||||
@@ -1130,10 +1172,14 @@ local langList={
|
||||
back="Back",
|
||||
},--langName added later
|
||||
help={
|
||||
staff="Staff",
|
||||
his="History",
|
||||
qq="Author's qq",
|
||||
back="Back",
|
||||
},
|
||||
staff={
|
||||
back="Back",
|
||||
},
|
||||
history={
|
||||
prev="↑",
|
||||
next="↓",
|
||||
@@ -1179,7 +1225,7 @@ local langList={
|
||||
{"Blind", "ALL", "For intermediate players."},
|
||||
{"Blind", "SUDDEN", "For experienced players."},
|
||||
{"Blind", "SUDDEN+", "For professionals."},
|
||||
{"Blind", "NOTHING", "For masters."},
|
||||
{"Blind", "", "R U Ready?"},
|
||||
{"Classic", "CTWC", "High-speed classic mode."},
|
||||
{"Survivor", "EASY", "How long can you survive?"},
|
||||
{"Survivor", "NORMAL", "How long can you survive?"},
|
||||
@@ -1217,7 +1263,7 @@ local langList={
|
||||
{"Infinite: Dig", "", "Dig, dig, dig."},
|
||||
{"Custom", "NORMAL", "Draw something then clear it!!"},
|
||||
{"Custom", "PUZZLE", "Draw something then stack it!!"},
|
||||
{"Sprint", "Pentomino", "???"},
|
||||
{"Sprint", "Pentomino", "Puzzle-18"},
|
||||
},
|
||||
},
|
||||
{
|
||||
@@ -1355,21 +1401,31 @@ local langList={
|
||||
"#<>#/<>:",
|
||||
},
|
||||
help={
|
||||
"?↓↓↓?? ?",
|
||||
"□□□□~~~, ?_?x ?",
|
||||
"□!!~~~,□□□□X",
|
||||
"□!!==*/*/*/*~",
|
||||
"",
|
||||
"Made with LOVE2D",
|
||||
"Author: MrZ E-mail: 1046101471@qq.com",
|
||||
"Program: MrZ Art: MrZ Music: MrZ SFX: MrZ Voice: MrZ/Miya",
|
||||
"Special thanks to Flyz, Farter, 196, Teatube, [all testers] and you!",
|
||||
"",
|
||||
"bug reports/suggestions, sent to the author's testing group or email ~",
|
||||
"This is a free download available only through discord.gg/f9pUvkh",
|
||||
"The game downloaded from other sources may contain viruses,",
|
||||
"and only vibration & networking permissions are needed for mobile versions!",
|
||||
"The author is not responsible for any losses from modifying the game.",
|
||||
},
|
||||
staff={
|
||||
"Author: MrZ E-mail: 1046101471@qq.com",
|
||||
"",
|
||||
"Powered by LOVE2D",
|
||||
"",
|
||||
"Program: MrZ, (FinnTenzor)",
|
||||
"Art: MrZ, (Gnyar)",
|
||||
"Music: MrZ, (T0722)",
|
||||
"Sound: MrZ",
|
||||
"Voice: Miya, (MrZ)",
|
||||
"",
|
||||
"Secial Thanks:",
|
||||
"Flyz, Farter, 蕴空之灵,",
|
||||
"Teatube, [All test staff]",
|
||||
},
|
||||
used="Tool used:\n\tBeepbox\n\tGFIE\n\tGoldwave\nLib used:\n\tCold_Clear[MinusKelvin]\n\tsimple-love-lights[dylhunn]",
|
||||
support="Support author",
|
||||
group="Official QQ Group(if not hacked):822023725",
|
||||
@@ -1457,6 +1513,7 @@ local langList={
|
||||
atkFX="→→~",
|
||||
frame="|=|",
|
||||
text="ABC",
|
||||
warn="!↑↑↑!",
|
||||
fullscreen="|←→|",
|
||||
bg="__?__",
|
||||
power="+.",
|
||||
@@ -1529,10 +1586,14 @@ local langList={
|
||||
back="X",
|
||||
},--langName added later
|
||||
help={
|
||||
staff="Orz",
|
||||
his="_&_",
|
||||
qq="_@_",
|
||||
back="X",
|
||||
},
|
||||
staff={
|
||||
back="X",
|
||||
},
|
||||
history={
|
||||
prev="↑",
|
||||
next="↓",
|
||||
@@ -1578,7 +1639,7 @@ local langList={
|
||||
{"Blind", "ALL", "For intermediate players."},
|
||||
{"Blind", "SUDDEN", "For experienced players."},
|
||||
{"Blind", "SUDDEN+", "For professionals."},
|
||||
{"Blind", "NOTHING", "For masters."},
|
||||
{"Blind", "", "R U Ready?"},
|
||||
{"Classic", "CTWC", "High-speed classic mode."},
|
||||
{"Survivor", "EASY", "How long can you survive?"},
|
||||
{"Survivor", "NORMAL", "How long can you survive?"},
|
||||
@@ -1616,7 +1677,7 @@ local langList={
|
||||
{"Infinite: Dig", "", "Dig, dig, dig."},
|
||||
{"Custom", "NORMAL", "Draw something then clear it!!"},
|
||||
{"Custom", "PUZZLE", "Draw something then stack it!!"},
|
||||
{"Sprint", "Pentomino", "???"},
|
||||
{"Sprint", "Pentomino", "Puzzle-18"},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
--https://github.com/mattdesl/lwjgl-basics/wiki/2D-Pixel-Perfect-Shadows
|
||||
local gc=love.graphics
|
||||
local C=gc.clear
|
||||
local shadowMapShader=gc.newShader("shader/shadowMap.cs")--Shader for caculating the 1D shadow map.
|
||||
local lightRenderShader=gc.newShader("shader/lightRender.cs")--Shader for rendering blurred lights and shadows.
|
||||
local shadowMapShader=gc.newShader("shader/shadowMap.glsl")--Shader for caculating the 1D shadow map.
|
||||
local lightRenderShader=gc.newShader("shader/lightRender.glsl")--Shader for rendering blurred lights and shadows.
|
||||
local Lights={}--Lightsource objects
|
||||
local function move(L,x,y)
|
||||
L.x,L.y=x,y
|
||||
|
||||
@@ -20,7 +20,7 @@ customRange={
|
||||
target={10,20,40,100,200,500,1000,1e99},
|
||||
freshLimit={0,8,15,1e99},
|
||||
opponent={0,1,2,3,4,5,11,12,13,14,15,16},
|
||||
bg={"none","game1","game2","game3","strap","rgb","glow","matrix"},
|
||||
bg={"none","game1","game2","game3","strap","aura","rgb","glow","matrix"},
|
||||
bgm={"blank","way","race","newera","push","reason","infinite","secret7th","secret8th","rockblock"},
|
||||
}
|
||||
snapLevelValue={1,10,20,40,60,80}
|
||||
@@ -1,5 +1,12 @@
|
||||
local gc=love.graphics
|
||||
local function N(file)
|
||||
return love.graphics.newShader("shader/"..file..".glsl")
|
||||
end
|
||||
return{
|
||||
-- glow=gc.newShader("shader/glow.cs"),
|
||||
alpha=gc.newShader("shader/alpha.cs"),
|
||||
alpha=N("alpha"),
|
||||
warning=N("warning"),
|
||||
|
||||
rainbow=N("rainbow"),
|
||||
strap=N("strap"),
|
||||
aura=N("aura"),
|
||||
}
|
||||
@@ -83,7 +83,7 @@ function TEXT.getText(text,x,y,font,style,spd,stop)
|
||||
font=font or 40,
|
||||
spd=(spd or 1)/60,
|
||||
stop=stop,
|
||||
draw=textFX[style]or error("unavailable type:"..style),
|
||||
draw=textFX[style]or assert(false,"unavailable type:"..style),
|
||||
}
|
||||
end--another version of TEXT()
|
||||
function TEXT.show(text,x,y,font,style,spd,stop)
|
||||
@@ -95,7 +95,7 @@ function TEXT.show(text,x,y,font,style,spd,stop)
|
||||
font=font or 40, --font
|
||||
spd=(spd or 1)/60, --timing speed(1=last 1 sec)
|
||||
stop=stop, --stop time(sustained text)
|
||||
draw=textFX[style]or error("unavailable type:"..style), --draw method
|
||||
draw=textFX[style]or assert(false,"unavailable type:"..style), --draw method
|
||||
}
|
||||
end
|
||||
function TEXT.update(list)
|
||||
|
||||
Reference in New Issue
Block a user