From 6fa9aa30fac744fe276dab4ae3f25d535fca712e Mon Sep 17 00:00:00 2001 From: MrZ626 <1046101471@qq.com> Date: Thu, 20 May 2021 00:02:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=99=9A=E6=8B=9F=E6=8C=89?= =?UTF-8?q?=E9=94=AE=E6=A0=B7=E5=BC=8F=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.lua | 7 ++- parts/globalTables.lua | 1 + parts/language/lang_en.lua | 1 + parts/language/lang_fr.lua | 1 + parts/language/lang_pt.lua | 1 + parts/language/lang_sp.lua | 1 + parts/language/lang_symbol.lua | 1 + parts/language/lang_zh.lua | 1 + parts/scenes/setting_touch.lua | 12 +++-- parts/virtualKey.lua | 80 +++++++++++++++++++++++----------- 10 files changed, 71 insertions(+), 35 deletions(-) diff --git a/main.lua b/main.lua index 9c1de9b2..b03f353d 100644 --- a/main.lua +++ b/main.lua @@ -236,7 +236,6 @@ for _,v in next,fs.getDirectoryItems("parts/scenes")do LANG.addScene(sceneName) end end -LANG.set(SETTING.lang) --Update data do @@ -268,6 +267,7 @@ do needSave=true autoRestart=true end + if not SETTING.VKSkin then SETTING.VKSkin=1 end if not TABLE.find({8,10,13,17,22,29,37,47,62,80,100},SETTING.frameMul)then SETTING.frameMul=100 end @@ -320,4 +320,7 @@ do if autoRestart then love.event.quit('restart') end -end \ No newline at end of file +end + +LANG.set(SETTING.lang) +VK.setShape(SETTING.VKSkin) \ No newline at end of file diff --git a/parts/globalTables.lua b/parts/globalTables.lua index cef88b83..a4b3ee01 100644 --- a/parts/globalTables.lua +++ b/parts/globalTables.lua @@ -305,6 +305,7 @@ SETTING={--Settings VKSFX=.2,--SFX volume VKVIB=0,--VIB VKSwitch=false,--If disp + VKSkin=1,--If disp VKTrack=false,--If tracked VKDodge=false,--If dodge VKTchW=.3,--Touch-Pos Weight diff --git a/parts/language/lang_en.lua b/parts/language/lang_en.lua index d5b0ce52..95d49e7d 100644 --- a/parts/language/lang_en.lua +++ b/parts/language/lang_en.lua @@ -389,6 +389,7 @@ return{ save2="Save2", load2="Load2", size="Size", + shape="Shape", }, setting_touchSwitch={ b1= "Move Left:", b2="Move Right:", b3="Rotate Right:", b4="Rotate Left:", diff --git a/parts/language/lang_fr.lua b/parts/language/lang_fr.lua index 74f79148..c33abccb 100644 --- a/parts/language/lang_fr.lua +++ b/parts/language/lang_fr.lua @@ -358,6 +358,7 @@ return{ -- save2="Save2", -- load2="Load2", size="Taille", + -- shape="Shape", }, setting_touchSwitch={ b1= "Déplacement vers la gauche :",b2="Déplacement vers la droite:", diff --git a/parts/language/lang_pt.lua b/parts/language/lang_pt.lua index c7264146..709f1dd4 100644 --- a/parts/language/lang_pt.lua +++ b/parts/language/lang_pt.lua @@ -388,6 +388,7 @@ return{ -- save2="Save2", -- load2="Load2", size="Tamanho", + -- shape="Shape", }, setting_touchSwitch={ b1= "Esquerda:", b2="Direita:", b3="Giro Dir.:", b4="Giro Esq.:", diff --git a/parts/language/lang_sp.lua b/parts/language/lang_sp.lua index 55a11923..5692c935 100644 --- a/parts/language/lang_sp.lua +++ b/parts/language/lang_sp.lua @@ -362,6 +362,7 @@ return{ -- save2="Save2", -- load2="Load2", size="Tamaño", + -- shape="Shape", }, setting_touchSwitch={ b1= "Mover Izq.:",b2="Mover Der.:",b3="Rotar Der.:",b4="Rotar Izq.:", diff --git a/parts/language/lang_symbol.lua b/parts/language/lang_symbol.lua index 7689c920..d44ed4f6 100644 --- a/parts/language/lang_symbol.lua +++ b/parts/language/lang_symbol.lua @@ -241,6 +241,7 @@ return{ save2=">2", load2="2>", size="←→", + shape="@?", }, setting_touchSwitch={ b1="←:", b2="→:", b3="R→:", b4="←R:", diff --git a/parts/language/lang_zh.lua b/parts/language/lang_zh.lua index 0372b981..f7219e9e 100644 --- a/parts/language/lang_zh.lua +++ b/parts/language/lang_zh.lua @@ -388,6 +388,7 @@ return{ save2="保存2", load2="读取2", size="大小", + shape="形状", }, setting_touchSwitch={ b1= "左移:", b2="右移:", b3="顺时针旋转:", b4="逆时针旋转:", diff --git a/parts/scenes/setting_touch.lua b/parts/scenes/setting_touch.lua index 638ad37a..a41712f0 100644 --- a/parts/scenes/setting_touch.lua +++ b/parts/scenes/setting_touch.lua @@ -84,8 +84,8 @@ end function scene.draw() gc.setColor(1,1,1) - gc.setLineWidth(7)gc.rectangle('line',340,15,600,690) - gc.setLineWidth(3)gc.rectangle('line',490,85,300,600) + gc.setLineWidth(3) + gc.rectangle('line',490,85,300,600) VK.preview(selected) if snapUnit>=10 then gc.setLineWidth(3) @@ -193,11 +193,8 @@ scene.widgetList={ selected=false end}, WIDGET.newSelector{name="snap", x=750,y=90,w=200,h=80,color='Y',list={1,10,20,40,60,80},disp=function()return snapUnit end,code=function(i)snapUnit=i end}, - WIDGET.newButton{name="option", x=530,y=190,w=200,h=80,font=40, - code=function() - SCN.go('setting_touchSwitch') - end}, - WIDGET.newButton{name="back", x=750,y=190,w=200,h=70,font=35,code=backScene}, + WIDGET.newButton{name="option", x=530,y=190,w=200,h=80,font=40,code=function()SCN.go('setting_touchSwitch')end}, + WIDGET.newButton{name="back", x=750,y=190,w=200,h=80,font=35,code=backScene}, WIDGET.newKey{name="save1", x=475,y=290,w=90,h=70,code=save1}, WIDGET.newKey{name="load1", x=585,y=290,w=90,h=70,code=load1}, WIDGET.newKey{name="save2", x=695,y=290,w=90,h=70,code=save2}, @@ -214,6 +211,7 @@ scene.widgetList={ hideF=function() return not selected end}, + WIDGET.newKey{name="shape",x=640,y=600,w=200,h=80,code=function()SETTING.VKSkin=VK.nextShape()end}, } return scene \ No newline at end of file diff --git a/parts/virtualKey.lua b/parts/virtualKey.lua index 36d86673..aeec5cf0 100644 --- a/parts/virtualKey.lua +++ b/parts/virtualKey.lua @@ -1,8 +1,34 @@ local gc=love.graphics +local gc_draw,gc_setColor,gc_setLineWidth=gc.draw,gc.setColor,gc.setLineWidth + local next=next + local SETTING,TIME=SETTING,TIME local VK_org=VK_org +local skin=1 +local r=10 +local buttonImages={ + DOGC{200,200,{'setLW',4},{'dCirc',100,100,98},{'dCirc',100,100,90}}, + DOGC{200,200,{'setLW',4},{'dCirc',100,100,98,8},{'dCirc',100,100,90,8}}, + DOGC{200,200,{'setLW',4},{'dCirc',100,100,98,6},{'dCirc',100,100,90,6}}, + DOGC{200,200,{'setLW',4},{'dCirc',100,100,98,4},{'dCirc',100,100,89,4}}, + DOGC{200,200,{'setLW',4},{'dRect',31,31,138,138},{'dRect',39,39,122,122}}, +} +local rippleImages={ + DOGC{200,200,{'setLW',4},{'dCirc',100,100,98}}, + DOGC{200,200,{'setLW',4},{'dCirc',100,100,98,8}}, + DOGC{200,200,{'setLW',4},{'dCirc',100,100,98,6}}, + DOGC{200,200,{'setLW',4},{'dCirc',100,100,98,4}}, + DOGC{200,200,{'setLW',4},{'dRect',31,31,138,138}}, +} +local holdImages={ + DOGC{200,200,{'fCirc',100,100,86}}, + DOGC{200,200,{'fCirc',100,100,86,8}}, + DOGC{200,200,{'fCirc',100,100,85,6}}, + DOGC{200,200,{'fCirc',100,100,83,4}}, + DOGC{200,200,{'fRect',43,43,114,114}}, +} --Virtualkey icons local VKIcon={} gc.setDefaultFilter('nearest','nearest') @@ -69,6 +95,14 @@ function VK.release(id) keys[id].isDown=false end +function VK.setShape(s) + skin=s +end +function VK.nextShape() + skin=skin%#buttonImages+1 + return skin +end + function VK.switchKey(id,on) keys[id].ava=on end @@ -100,61 +134,53 @@ function VK.update() end end -local gc_draw,gc_setColor,gc_setLineWidth=gc.draw,gc.setColor,gc.setLineWidth -local buttonImage=DOGC{100,100, - {'setLW',4},{'dRect',2,2,96,96}, - {'setLW',4},{'dRect',10,10,80,80}, -} -local rippleImage=DOGC{100,100, - {'setLW',4},{'dRect',2,2,96,96}, -} -local holdImage=DOGC{100,100, - {'fRect',14,14,72,72}, -} function VK.draw() if not SETTING.VKSwitch then return end local a=SETTING.VKAlpha + local buttonImage=buttonImages[skin] + local rippleImage=rippleImages[skin] + local holdImage=holdImages[skin] if SETTING.VKIcon then for i,B in next,keys do if B.ava then - local r=B.r*.71 + local r=B.r --Button outline gc_setColor(1,1,1,a) gc_setLineWidth(r*.07) - gc_draw(buttonImage,B.x,B.y,nil,r/50,nil,50,50) + gc_draw(buttonImage,B.x,B.y,nil,r*.01,nil,100,100) --Icon local _=B.pressTime gc_setColor(1,1,1,a) - gc_draw(VKIcon[i],B.x,B.y,nil,r*.026+_*.06,nil,18,18) + gc_draw(VKIcon[i],B.x,B.y,nil,r*.024+_*.06,nil,18,18) --Ripple if _>0 then gc_setColor(1,1,1,a*_*.08) local d=r*(1.4-_*.04) - gc_draw(rippleImage,B.x,B.y,nil,d/50,nil,50,50) + gc_draw(rippleImage,B.x,B.y,nil,d*.01,nil,100,100) end --Glow when press if B.isDown then gc_setColor(1,1,1,a*.4) - gc_draw(holdImage,B.x,B.y,nil,r/50,nil,50,50) + gc_draw(holdImage,B.x,B.y,nil,r*.01,nil,100,100) end end end else for _,B in next,keys do if B.ava then - local r=B.r*.71 + local r=B.r gc_setColor(1,1,1,a) gc_setLineWidth(r*.07) - gc_draw(buttonImage,B.x,B.y,nil,r/50,nil,50,50) + gc_draw(buttonImage,B.x,B.y,nil,r*.01,nil,100,100) local _=B.pressTime if _>0 then gc_setColor(1,1,1,a*_*.08) - gc_draw(holdImage,B.x,B.y,nil,r/50,nil,50,50) + gc_draw(holdImage,B.x,B.y,nil,r*.01,nil,100,100) local d=r*(1.4-_*.04) - gc_draw(rippleImage,B.x,B.y,nil,d/50,nil,50,50) + gc_draw(rippleImage,B.x,B.y,nil,d*.01,nil,100,100) end end end @@ -162,19 +188,21 @@ function VK.draw() end function VK.preview(selected) if not SETTING.VKSwitch then return end - for id,B in next,VK_org do + local buttonImage=buttonImages[skin] + local holdImage=holdImages[skin] + for i,B in next,VK_org do if B.ava then - local r=B.r*.71 + local r=B.r gc_setColor(1,1,1,SETTING.VKAlpha) gc_setLineWidth(r*.07) - gc_draw(buttonImage,B.x,B.y,nil,r/50,nil,50,50) - if selected==id and TIME()%.26<.13 then + gc_draw(buttonImage,B.x,B.y,nil,r*.01,nil,100,100) + if selected==i and TIME()%.26<.13 then gc_setColor(1,1,1,SETTING.VKAlpha*.62) - gc_draw(holdImage,B.x,B.y,nil,r/50,nil,50,50) + gc_draw(holdImage,B.x,B.y,nil,r*.01,nil,100,100) end if SETTING.VKIcon then gc_setColor(1,1,1,SETTING.VKAlpha) - gc_draw(VKIcon[id],B.x,B.y,nil,r*.026,nil,18,18) + gc_draw(VKIcon[i],B.x,B.y,nil,r*.024,nil,18,18) end end end