控件模块/场景代码更好地响应系统长按

This commit is contained in:
MrZ626
2021-06-17 22:17:35 +08:00
parent 37a3e36bd5
commit e5a3b6c6ac
35 changed files with 143 additions and 165 deletions

View File

@@ -15,23 +15,23 @@ function scene.sceneInit()
end
scene.mouseDown=NULL
function scene.keyDown(k)
if k:byte()>=48 and k:byte()<=57 then
function scene.keyDown(key)
if key:byte()>=48 and key:byte()<=57 then
if sym=="="then
val=k
val=key
sym=false
elseif sym and not reg then
reg=val
val=k
val=key
else
if #val<14 then
if val=="0"then val=""end
val=val..k
val=val..key
end
end
elseif k:sub(1,2)=="kp"then
scene.keyDown(k:sub(3))
elseif k=="."then
elseif key:sub(1,2)=="kp"then
scene.keyDown(key:sub(3))
elseif key=="."then
if not(val:find(".",nil,true)or val:find("e"))then
if sym and not reg then
reg=val
@@ -39,11 +39,11 @@ function scene.keyDown(k)
end
val=val.."."
end
elseif k=="e"then
elseif key=="e"then
if not val:find("e")then
val=val.."e"
end
elseif k=="backspace"then
elseif key=="backspace"then
if sym=="="then
val=""
elseif sym then
@@ -52,11 +52,11 @@ function scene.keyDown(k)
val=val:sub(1,-2)
end
if val==""then val="0"end
elseif k=="+"or k=="="and kb.isDown("lshift","rshift")then sym="+" reg=false
elseif k=="*"or k=="8"and kb.isDown("lshift","rshift")then sym="*" reg=false
elseif k=="-"then sym="-" reg=false
elseif k=="/"then sym="/" reg=false
elseif k=="return"then
elseif key=="+"or key=="="and kb.isDown("lshift","rshift")then sym="+" reg=false
elseif key=="*"or key=="8"and kb.isDown("lshift","rshift")then sym="*" reg=false
elseif key=="-"then sym="-" reg=false
elseif key=="/"then sym="/" reg=false
elseif key=="return"then
if val:byte(-1)==101 then val=val:sub(1,-2)end
if sym and reg then
if reg:byte(-1)==101 then reg=reg:sub(1,-2)end
@@ -69,13 +69,13 @@ function scene.keyDown(k)
end
sym="="
reg=false
elseif k=="escape"then
elseif key=="escape"then
if val~="0"then
val,reg,sym="0"
else
SCN.back()
end
elseif k=="delete"then
elseif key=="delete"then
val="0"
end
end