0.8.22:Shader Update

This commit is contained in:
MrZ_26
2020-05-28 15:16:38 +08:00
parent 76fab86692
commit 08883b952f
107 changed files with 1220 additions and 1009 deletions

View File

@@ -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

View File

@@ -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
View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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}},

View File

@@ -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"},
},
},
}

View File

@@ -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

View File

@@ -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}

View File

@@ -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"),
}

View File

@@ -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)