From 1f1d69d484419063657955b7d47b5d8e2d6659be Mon Sep 17 00:00:00 2001 From: MrZ626 <1046101471@qq.com> Date: Fri, 28 May 2021 00:15:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E5=86=99=E6=8E=A7=E4=BB=B6=E6=BB=9A?= =?UTF-8?q?=E5=8A=A8=E7=9B=B8=E5=85=B3=E4=BB=A3=E7=A0=81=EF=BC=8C=E8=A7=A3?= =?UTF-8?q?=E5=86=B3=E6=8E=A7=E4=BB=B6=E9=A2=9C=E8=89=B2=E5=81=8F=E5=B7=AE?= =?UTF-8?q?=E5=92=8C=E9=9D=9E=E6=A0=87=E5=87=86=E5=B1=8F=E5=B9=95=E5=B0=BA?= =?UTF-8?q?=E5=AF=B8=E6=9C=AA=E5=AE=9A=E4=B9=89=E8=A1=8C=E4=B8=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Zframework/init.lua | 1 + Zframework/widget.lua | 64 +++++++++++++++++++++---------------------- 2 files changed, 33 insertions(+), 32 deletions(-) diff --git a/Zframework/init.lua b/Zframework/init.lua index c8cfb977..72c83790 100644 --- a/Zframework/init.lua +++ b/Zframework/init.lua @@ -351,6 +351,7 @@ function love.resize(w,h) SCR.resize(w,h) if BG.resize then BG.resize(w,h)end if SCN.resize then SCN.resize(w,h)end + WIDGET.resize(w,h) SHADER.warning:send("w",w*SCR.dpi) SHADER.warning:send("h",h*SCR.dpi) diff --git a/Zframework/widget.lua b/Zframework/widget.lua index 8c38d937..550fe3f1 100644 --- a/Zframework/widget.lua +++ b/Zframework/widget.lua @@ -1,13 +1,12 @@ local gc=love.graphics local gc_push,gc_pop,gc_clear,gc_origin=gc.push,gc.pop,gc.clear,gc.origin -local gc_translate,gc_scale=gc.translate,gc.scale +local gc_translate,gc_replaceTransform=gc.translate,gc.replaceTransform local gc_setCanvas,gc_setBlendMode=gc.setCanvas,gc.setBlendMode local gc_setColor,gc_setLineWidth=gc.setColor,gc.setLineWidth local gc_draw,gc_line=gc.draw,gc.line local gc_rectangle=gc.rectangle local gc_print,gc_printf=gc.print,gc.printf - local kb=love.keyboard local next=next @@ -16,13 +15,14 @@ local max,min=math.max,math.min local sub,ins=string.sub,table.insert local getFont,setFont,mStr=getFont,setFont,mStr local mDraw,mDraw_X,mDraw_Y=ADRAW.draw,ADRAW.simpX,ADRAW.simpY +local xOy=SCR.xOy local downArrowIcon=DOGC{60,35,{'fPoly',0,0,30,35,60,0}} local upArrowIcon=DOGC{60,35,{'fPoly',0,35,30,0,60,35}} local clearIcon=DOGC{40,40, - {'fRect',16,4,8,2}, - {'fRect',8,0,24,2}, - {'fRect',11,1,18,26}, + {'fRect',16,5,8,2}, + {'fRect',8,7,24,2}, + {'fRect',12,11,18,24}, } local sureIcon=DOGC{40,40, {'setFT',35}, @@ -1245,47 +1245,47 @@ function WIDGET.update() if W.update then W:update()end end end -local scaleK local widgetCanvas local widgetCover do - local L={1280,720,{'fRect',0,40,1280,640}} - for i=0,20 do - ins(L,{'setCL',1,1,1,i/20}) - ins(L,{'fRect',0,2*i,1280,2}) - ins(L,{'fRect',0,720-2*i,1280,2}) + local L={1,360,{'fRect',0,30,1,300}} + for i=0,30 do + ins(L,{'setCL',1,1,1,i/30}) + ins(L,{'fRect',0,i,1,2}) + ins(L,{'fRect',0,360-i,1,2}) end widgetCover=DOGC(L) end +local scr_w,scr_h +function WIDGET.resize(w,h) + scr_w,scr_h=w,h + widgetCanvas=gc.newCanvas(w,h) +end function WIDGET.draw() - if SCR.k~=scaleK then - scaleK=SCR.k - widgetCanvas=gc.newCanvas(1280*scaleK,720*scaleK) - end - - gc_setCanvas(widgetCanvas) - gc_clear(1,1,1,0) - gc_push('transform') - gc_origin() - gc_scale(scaleK) + gc_push('transform') + gc_setCanvas(widgetCanvas) + gc_clear(0,0,0,0) + gc_replaceTransform(xOy) gc_translate(0,-WIDGET.scrollPos) for _,W in next,WIDGET.active do - if not W.hide then - W:draw() - end + if not W.hide then W:draw()end end gc_origin() gc_setColor(1,1,1) if WIDGET.scrollHeight>0 then - if WIDGET.scrollPos>0 then mDraw(upArrowIcon,640,25)end - if WIDGET.scrollPos0 then + gc_draw(upArrowIcon,scr_w*.5,10,0,SCR.k,nil,upArrowIcon:getWidth()*.5,0) + end + if WIDGET.scrollPos