From 03dad89787729a64fbfc0e0244f7d1b312b37168 Mon Sep 17 00:00:00 2001 From: MrZ626 <1046101471@qq.com> Date: Thu, 8 Jul 2021 03:57:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=B8=B8=E6=88=8F=E5=86=85?= =?UTF-8?q?=E6=96=B9=E5=9D=97=E5=92=8C=E5=9C=BA=E5=9C=B0=E7=9A=84=E4=BA=AE?= =?UTF-8?q?=E5=BA=A6=E5=8F=82=E6=95=B0=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.lua | 5 +++++ parts/gametoolfunc.lua | 19 +++++++++++++++++++ parts/globalTables.lua | 2 ++ parts/language/lang_en.lua | 3 +++ parts/language/lang_es.lua | 3 +++ parts/language/lang_fr.lua | 3 +++ parts/language/lang_pt.lua | 3 +++ parts/language/lang_symbol.lua | 3 +++ parts/language/lang_zh.lua | 3 +++ parts/player/draw.lua | 14 ++++++++++++-- parts/scenes/setting_video.lua | 28 +++++++++++++++++++++++++++- parts/shaders/blockSatur.glsl | 10 ++++++++++ parts/shaders/fieldSatur.glsl | 10 ++++++++++ 13 files changed, 103 insertions(+), 3 deletions(-) create mode 100644 parts/shaders/blockSatur.glsl create mode 100644 parts/shaders/fieldSatur.glsl diff --git a/main.lua b/main.lua index 2d341184..39627305 100644 --- a/main.lua +++ b/main.lua @@ -306,8 +306,13 @@ do love.event.quit('restart') end end + +--Apply system setting LANG.set(SETTING.lang) VK.setShape(SETTING.VKSkin) +applyBlockSatur(SETTING.blockSatur) +applyFieldSatur(SETTING.fieldSatur) + --Load replays for _,fileName in next,fs.getDirectoryItems('replay')do if fileName:sub(12,12):match("[a-zA-Z]")then diff --git a/parts/gametoolfunc.lua b/parts/gametoolfunc.lua index 3859f022..aef62090 100644 --- a/parts/gametoolfunc.lua +++ b/parts/gametoolfunc.lua @@ -17,6 +17,25 @@ function switchFullscreen() love.window.setFullscreen(SETTING.fullscreen) love.resize(gc.getWidth(),gc.getHeight()) end +do--function applyXxxSatur(mode) + local saturateValues={ + normal={0,1}, + soft={.2,.7}, + grey={.4,.4}, + light={.2,.8}, + color={-.2,1.2}, + } + function applyBlockSatur(mode) + local m=saturateValues[mode]or saturateValues.normal + SHADER.blockSatur:send('b',m[1]) + SHADER.blockSatur:send('k',m[2]) + end + function applyFieldSatur(mode) + local m=saturateValues[mode]or saturateValues.normal + SHADER.fieldSatur:send('b',m[1]) + SHADER.fieldSatur:send('k',m[2]) + end +end diff --git a/parts/globalTables.lua b/parts/globalTables.lua index 50d20a16..9ce054df 100644 --- a/parts/globalTables.lua +++ b/parts/globalTables.lua @@ -328,6 +328,8 @@ SETTING={--Settings atkFX=2, frameMul=100, cleanCanvas=false, + blockSatur='normal', + fieldSatur='normal', text=true, score=true, diff --git a/parts/language/lang_en.lua b/parts/language/lang_en.lua index 27aaa0d7..e0803f33 100644 --- a/parts/language/lang_en.lua +++ b/parts/language/lang_en.lua @@ -348,6 +348,9 @@ return{ clean="Fast Draw", fullscreen="Full Screen", bg="Background", + + blockSatur="Block Saturation", + fieldSatur="Field Saturation", }, setting_sound={ title="Sound Settings", diff --git a/parts/language/lang_es.lua b/parts/language/lang_es.lua index 044a7b7d..ff44ab68 100644 --- a/parts/language/lang_es.lua +++ b/parts/language/lang_es.lua @@ -323,6 +323,9 @@ return{ clean="Fast Draw", fullscreen="Pant. Completa", bg="Fondo", + + -- blockSatur="Block Saturation", + -- fieldSatur="Field Saturation", }, setting_sound={ title="Ajustes de Sonido", diff --git a/parts/language/lang_fr.lua b/parts/language/lang_fr.lua index 29564a02..fa630642 100644 --- a/parts/language/lang_fr.lua +++ b/parts/language/lang_fr.lua @@ -321,6 +321,9 @@ return{ -- clean="Fast Draw", fullscreen="Plein écran", bg="Arrière-plan", + + -- blockSatur="Block Saturation", + -- fieldSatur="Field Saturation", }, setting_sound={ title="Paramètres du son", diff --git a/parts/language/lang_pt.lua b/parts/language/lang_pt.lua index 06d816e4..a682e657 100644 --- a/parts/language/lang_pt.lua +++ b/parts/language/lang_pt.lua @@ -347,6 +347,9 @@ return{ -- clean="Fast Draw", fullscreen="Tela cheia", bg="Fundo", + + -- blockSatur="Block Saturation", + -- fieldSatur="Field Saturation", }, setting_sound={ title="Config. de sons", diff --git a/parts/language/lang_symbol.lua b/parts/language/lang_symbol.lua index 9b9ea9a7..61257f2e 100644 --- a/parts/language/lang_symbol.lua +++ b/parts/language/lang_symbol.lua @@ -176,6 +176,9 @@ return{ clean="[]→→O", fullscreen="|←→|", bg="__?__", + + blockSatur="==#0x", + fieldSatur="[]#0x", }, setting_sound={ title="(~~)", diff --git a/parts/language/lang_zh.lua b/parts/language/lang_zh.lua index 4be76c4b..d15a1886 100644 --- a/parts/language/lang_zh.lua +++ b/parts/language/lang_zh.lua @@ -348,6 +348,9 @@ return{ clean="绘制优化", fullscreen="全屏", bg="背景", + + blockSatur="方块饱和度", + fieldSatur="场地饱和度", }, setting_sound={ title="声音设置", diff --git a/parts/player/draw.lua b/parts/player/draw.lua index fc034ebd..cac0ad75 100644 --- a/parts/player/draw.lua +++ b/parts/player/draw.lua @@ -13,6 +13,7 @@ local setFont,mDraw,mStr=setFont,mDraw,mStr local SKIN,TEXTURE,IMG=SKIN,TEXTURE,IMG local TEXT,COLOR,GAME,TIME=TEXT,COLOR,GAME,TIME local shader_alpha,shader_lighter=SHADER.alpha,SHADER.lighter +local shader_fieldSatur,shader_blockSatur=SHADER.fieldSatur,SHADER.blockSatur local drawableText,missionEnum,minoColor=drawableText,missionEnum,minoColor local RCPB={5,33,195,33,100,5,100,60} @@ -122,7 +123,7 @@ local function drawField(P) -- for j=start,min(start+21,#F)do drawRow(j,V[j],F[j])end -- - gc_setShader() + gc_setShader(shader_fieldSatur) gc_translate(0,4) end @@ -146,7 +147,7 @@ local function drawField(P) drawRow(j,V[j],F[j]) end -- - gc_setShader() + gc_setShader(shader_fieldSatur) gc_pop() h=1 end @@ -165,6 +166,7 @@ local function drawField(P) -- gc_pop() end + gc_setShader() end local function drawFXs(P) --LockFX @@ -285,6 +287,7 @@ local function drawBlockOutline(P,texture,trans) end local function drawBlock(P,clr) gc_setColor(1,1,1) + gc_setShader(shader_blockSatur) local texture=SKIN.curText[clr] local CB=P.cur.bk for i=1,#CB do for j=1,#CB[1]do @@ -292,6 +295,7 @@ local function drawBlock(P,clr) gc_draw(texture,30*(j+P.curX-1)-30,-30*(i+P.curY-1)) end end end + gc_setShader() end local function drawNextPreview(P,B) gc_setColor(1,1,1,.8) @@ -405,6 +409,7 @@ local function drawHold(P) end gc_push('transform') gc_translate(62,40) + gc_setShader(shader_blockSatur) for n=1,#holdQueue do if n==N then gc_setColor(.6,.4,.4)end local bk,clr=holdQueue[n].bk,holdQueue[n].color @@ -419,6 +424,7 @@ local function drawHold(P) gc_scale(1/k) gc_translate(0,72) end + gc_setShader() gc_pop() gc_pop() end @@ -534,6 +540,7 @@ function draw.drawNext_norm(P) N=1 gc_push('transform') gc_translate(62,40) + gc_setShader(shader_blockSatur) while N<=ENV.nextCount and P.nextQueue[N]do local bk,sprite=P.nextQueue[N].bk,texture[P.nextQueue[N].color] local k=#bk>2 and 2.2/#bk or 1 @@ -547,6 +554,7 @@ function draw.drawNext_norm(P) N=N+1 gc_translate(0,72) end + gc_setShader() gc_pop() if ENV.bagLine then @@ -567,6 +575,7 @@ function draw.drawNext_hidden(P) N=min(ENV.nextStartPos,P.pieceCount+1) gc_push('transform') gc_translate(62,40) + gc_setShader(shader_blockSatur) local queue=P.nextQueue while N<=ENV.nextCount and queue[N]do local bk,sprite=queue[N].bk,texture[queue[N].color] @@ -581,6 +590,7 @@ function draw.drawNext_hidden(P) N=N+1 gc_translate(0,72) end + gc_setShader() gc_pop() if ENV.bagLine then diff --git a/parts/scenes/setting_video.lua b/parts/scenes/setting_video.lua index 72913108..c30db8ac 100644 --- a/parts/scenes/setting_video.lua +++ b/parts/scenes/setting_video.lua @@ -17,9 +17,23 @@ function scene.draw() gc.setColor(1,1,1) PLY.draw.drawGhost[SETTING.ghostType](fakePlayer,math.floor(TIME()*3)%16+1,SETTING.ghost) gc.pop() + gc.push('transform') + gc.setColor(1,1,1) + local L=SKIN.curText + local T=L[1] + gc.translate(0,1410-WIDGET.scrollPos) + gc.setShader(SHADER.blockSatur) + gc.draw(T,420+15,0)gc.draw(T,450+15,0)gc.draw(T,450+15,30)gc.draw(T,480+15,30) + gc.setShader(SHADER.fieldSatur) + for i=1,8 do + gc.draw(L[i],330+30*i,100) + gc.draw(L[i+8],330+30*i,130) + end + gc.setShader() + gc.pop() end -scene.widgetScrollHeight=700 +scene.widgetScrollHeight=900 scene.widgetList={ WIDGET.newText{name="title", x=640,y=15,font=80}, @@ -63,6 +77,18 @@ scene.widgetList={ SETTING.bg=not SETTING.bg BG.set() end}, + + WIDGET.newSelector{name="blockSatur",x=800,y=1440,w=300,color='lN', + list={'normal','soft','grey','light','color'}, + disp=SETval("blockSatur"), + code=function(v)SETTING.blockSatur=v;applyBlockSatur(SETTING.blockSatur)end + }, + WIDGET.newSelector{name="fieldSatur",x=800,y=1540,w=300,color='lN', + list={'normal','soft','grey','light','color'}, + disp=SETval("fieldSatur"), + code=function(v)SETTING.fieldSatur=v;applyFieldSatur(SETTING.fieldSatur)end + }, + WIDGET.newButton{name="back", x=1140,y=640,w=170,h=80,fText=TEXTURE.back,code=backScene}, } diff --git a/parts/shaders/blockSatur.glsl b/parts/shaders/blockSatur.glsl new file mode 100644 index 00000000..c672b9be --- /dev/null +++ b/parts/shaders/blockSatur.glsl @@ -0,0 +1,10 @@ +extern float k,b; +vec4 effect(vec4 color,Image tex,vec2 tex_coords,vec2 scr_coords){ + vec4 texcolor=Texel(tex,tex_coords); + return vec4( + b+texcolor.r*k, + b+texcolor.g*k, + b+texcolor.b*k, + texcolor.a*color.a + ); +} \ No newline at end of file diff --git a/parts/shaders/fieldSatur.glsl b/parts/shaders/fieldSatur.glsl new file mode 100644 index 00000000..c672b9be --- /dev/null +++ b/parts/shaders/fieldSatur.glsl @@ -0,0 +1,10 @@ +extern float k,b; +vec4 effect(vec4 color,Image tex,vec2 tex_coords,vec2 scr_coords){ + vec4 texcolor=Texel(tex,tex_coords); + return vec4( + b+texcolor.r*k, + b+texcolor.g*k, + b+texcolor.b*k, + texcolor.a*color.a + ); +} \ No newline at end of file