diff --git a/Zframework/init.lua b/Zframework/init.lua index 8a978e1b..168bb3dc 100644 --- a/Zframework/init.lua +++ b/Zframework/init.lua @@ -71,7 +71,6 @@ local xOy=SCR.xOy local ITP=xOy.inverseTransformPoint local mx,my,mouseShow=-20,-20,false -local touching--First touching ID(userdata) joysticks={} local devMode @@ -181,8 +180,8 @@ end function love.touchpressed(id,x,y) mouseShow=false if SCN.swapping then return end - if not touching then - touching=id + if not SCN.mainTouchID then + SCN.mainTouchID=id WIDGET.unFocus(true) love.touchmoved(id,x,y,0,0) end @@ -201,12 +200,12 @@ end function love.touchreleased(id,x,y) if SCN.swapping then return end x,y=ITP(xOy,x,y) - if id==touching then + if id==SCN.mainTouchID then WIDGET.press(x,y,1) WIDGET.release(x,y) WIDGET.cursorMove(x,y) WIDGET.unFocus() - touching=false + SCN.mainTouchID=false end if SCN.touchUp then SCN.touchUp(x,y)end if(x-lastX)^2+(y-lastY)^2<62 then diff --git a/Zframework/scene.lua b/Zframework/scene.lua index d7d2a873..da06ce44 100644 --- a/Zframework/scene.lua +++ b/Zframework/scene.lua @@ -4,6 +4,7 @@ local abs=math.abs local scenes={} local SCN={ + mainTouchID=nil, --First touching ID(userdata) cur='NULL', --Current scene name swapping=false, --If Swapping stat={ @@ -52,6 +53,7 @@ function SCN.swapUpdate(dt) if S.time=S.changeTime then --Scene swapped this frame SCN.init(S.tar,SCN.cur) + SCN.mainTouchID=nil end if S.time<0 then SCN.swapping=false