修复手机端滚动控件距离问题,升级SCR模块,增加几个方便的成员变量

This commit is contained in:
MrZ626
2021-05-29 18:41:54 +08:00
parent c55f4d3d62
commit 34fc38961c
6 changed files with 13 additions and 10 deletions

View File

@@ -142,7 +142,7 @@ function love.mousemoved(x,y,dx,dy,touch)
dx,dy=dx/SCR.k,dy/SCR.k
if SCN.mouseMove then SCN.mouseMove(mx,my,dx,dy)end
if ms.isDown(1)then
WIDGET.drag(mx,my,dx*SCR.dpi,dy*SCR.dpi)
WIDGET.drag(mx,my,dx/SCR.k,dy/SCR.k)
else
WIDGET.cursorMove(mx,my)
end
@@ -178,7 +178,7 @@ function love.touchmoved(_,x,y,dx,dy)
if SCN.swapping then return end
x,y=xOy:inverseTransformPoint(x,y)
if SCN.touchMove then SCN.touchMove(x,y,dx/SCR.k,dy/SCR.k)end
WIDGET.drag(x,y,dx*SCR.dpi,dy*SCR.dpi)
WIDGET.drag(x,y,dx/SCR.k,dy/SCR.k)
if touching then
WIDGET.cursorMove(x,y)
if not WIDGET.sel then touching=false end
@@ -652,7 +652,7 @@ function love.run()
elseif devMode==4 then WAIT(.5)
end
end
gc_translate(SCR.w*.5,SCR.h)
gc_translate(SCR.cx,SCR.h)
gc_scale(SCR.k)
--Draw Version string
gc_setColor(.8,.8,.8,.4)

View File

@@ -21,13 +21,16 @@ function SCR.resize(w,h)
SCR.r=h/w
SCR.rad=(w^2+h^2)^.5
SCR.x,SCR.y=0,0
if SCR.r>=SCR.h0/SCR.w0 then
SCR.k=w/SCR.w0
SCR.x,SCR.y=0,(h-w*SCR.h0/SCR.w0)/2
SCR.y=(h-SCR.h0*SCR.k)/2
else
SCR.k=h/SCR.h0
SCR.x,SCR.y=(w-h*SCR.w0/SCR.h0)/2,0
SCR.x=(w-SCR.w0*SCR.k)/2
end
SCR.cx,SCR.cy=SCR.w/2,SCR.h/2
SCR.ex,SCR.ey=SCR.w-SCR.x,SCR.h-SCR.y
SCR.safeX,SCR.safeY,SCR.safeW,SCR.safeH=love.window.getSafeArea()
SCR.xOy:setTransformation(w/2,h/2,nil,SCR.k,nil,SCR.w0/2,SCR.h0/2)
end
@@ -41,7 +44,7 @@ function SCR.info()
("W,H : %d, %d"):format(SCR.W,SCR.H),
("safeX,safeY : %d, %d"):format(SCR.safeX,SCR.safeY),
("safeW,safeH : %d, %d"):format(SCR.safeW,SCR.safeH),
("k,dpi,rad : %d, %d, %.4f"):format(SCR.k,SCR.dpi,SCR.rad),
("k,dpi,rad : %.2f, %d, %.2f"):format(SCR.k,SCR.dpi,SCR.rad),
}
end
return SCR

View File

@@ -45,7 +45,7 @@ function back.draw()
gc_clear(.1,.1,.1)
gc_push('transform')
gc_origin()
gc_translate(SCR.w/2,SCR.h/2)
gc_translate(SCR.cx,SCR.cy)
--Squares
gc_setColor(1,1,1,.2)

View File

@@ -44,7 +44,7 @@ function back.draw()
gc_clear(.1,.1,.1)
gc_push('transform')
gc_origin()
gc_translate(SCR.w/2,SCR.h/2)
gc_translate(SCR.cx,SCR.cy)
for i=1,#mino do
local M=mino[i]
local c=M.color

View File

@@ -24,6 +24,6 @@ function back.draw()
end
local _=colorLib[SETTING.skin[R]]
gc.setColor(_[1],_[2],_[3],.12)
gc.draw(TEXTURE.miniBlock[R],SCR.w/2,SCR.h/2,t%3.1416*6,400*SCR.k,nil,scs[R][0][2]+.5,#blocks[R][0]-scs[R][0][1]-.5)
gc.draw(TEXTURE.miniBlock[R],SCR.cx,SCR.cy,t%3.1416*6,400*SCR.k,nil,scs[R][0][2]+.5,#blocks[R][0]-scs[R][0][1]-.5)
end
return back

View File

@@ -19,7 +19,7 @@ function back.draw()
gc.clear(.1,.1,.1)
end
gc.push('transform')
gc.translate(SCR.w/2,SCR.h/2+20*sin(t*.02))
gc.translate(SCR.cx,SCR.cy+20*sin(t*.02))
gc.scale(SCR.k)
gc.scale(1.1626,1.26)
if -t%6.26<.1355 then