11 梦月 7小时前 147次点击
代码
--[[
作者,梦月,qq:2428735459
All rights reserved.
]]
require "import"
import "android.widget.*"
import "android.view.*"
function 取触摸动作(e)
return e.getAction()
end
function 取关联按键(e)
return e.getActionButton()
end
function 取触摸点ID(e,i)
return e.getPointerId(i)
end
function 取坐标(e,i)
return e.getX(i),e.getY(i)
end
function 取工具类型(e,i)
return e.getToolType(i)
end
function 取外接按键状态(e)
return e.getButtonState()
end
function 取触摸分类(e)
return e.getClassification()
end
function 取辅助键状态(e)
return e.getMetaState()
end
function 取系统标志(e)
return e.getFlags()
end
function 取边缘标志(e)
return e.getEdgeFlags()
end
function 取触摸点数量(e)
return e.getPointerCount()
end
function 取历史事件数(e)
return e.getHistorySize()
end
function 取事件时间(e)
return e.getEventTime()
end
function 取按下时间(e)
return e.getDownTime()
end
function 取设备ID(e)
return e.getDeviceId()
end
function 取事件来源(e)
return e.getSource()
end
function 取屏幕ID(e)
return e.getDisplayId()
end
function 初始化(vv,func)
func=func or {
上=function()
end
,
下=function()
end
,
左=function()
end
,
右=function()
end
,
上2=function()
end
,
下2=function()
end
,
左2=function()
end
,
右2=function()
end
,
上3=function()
end
,
下3=function()
end
,
左3=function()
end
,
右3=function()
end
}
local 上=func["上"]
local 下=func["下"]
local 左=func["左"]
local 右=func["右"]
local 上2=func["上2"]
local 下2=func["下2"]
local 左2=func["左2"]
local 右2=func["右2"]
local 上3=func["上3"]
local 下3=func["下3"]
local 左3=func["左3"]
local 右3=func["右3"]
local 数据={}
local 灵敏度=45
local 冷却=200
local 状态=1
local 动作=1
local 类型=0
local 可单击=false
local 点=0
local 点击次数=0
local 点击时间=0
local 时间=0
for i=0,9 do
数据["cx"..i]=0
数据["cy"..i]=0
数据["x"..i]=0
数据["y"..i]=0
end
vv.onTouch=function(k,v)
动作=取触摸动作(v)
点=取触摸点数量(v)
时间=取按下时间(v)
类型=取触摸分类(v)
for i=0,点-1 do
if 数据["cx"..i]==0 and 数据["cy"..i]==0 then
数据["cx"..i],数据["cy"..i]=取坐标(v,i)
end
end
if 动作==1 then
for i=0,9 do
数据["cx"..i]=0
数据["cy"..i]=0
数据["x"..i]=0
数据["y"..i]=0
end
状态=1
end
for i=0,点-1 do
数据["x"..i],数据["y"..i]=取坐标(v,i)
end
if 动作==2 and 点==1 and 计算方向(数据.x0-数据.cx0,数据.y0-数据.cy0)==0 and 状态==1 then
状态锁()
if 上 then
上()
end
elseif 动作==2 and 点==1 and 计算方向(数据.x0-数据.cx0,数据.y0-数据.cy0)==2 and 状态==1 then
状态锁()
if 下 then
下()
end
elseif 动作==2 and 点==1 and 计算方向(数据.x0-数据.cx0,数据.y0-数据.cy0)==-1 and 状态==1 then
状态锁()
if 左 then
左()
end
elseif 动作==2 and 点==1 and 计算方向(数据.x0-数据.cx0,数据.y0-数据.cy0)==1 and 状态==1 then
状态锁()
if 右 then
右()
end
elseif 动作==2 and 点==2 and 计算方向(数据.x0-数据.cx0,数据.y0-数据.cy0)==-1 and 计算方向(数据.x1-数据.cx1,数据.y1-数据.cy1)==-1 and 状态==1 then
状态=0
if 左2 then
左2()
end
elseif 动作==2 and 点==2 and 计算方向(数据.x0-数据.cx0,数据.y0-数据.cy0)==1 and 计算方向(数据.x1-数据.cx1,数据.y1-数据.cy1)==1 and 状态==1 then
状态=0
if 右2 then
右2()
end
elseif 动作==2 and 点==2 and 计算方向(数据.x0-数据.cx0,数据.y0-数据.cy0)==0 and 计算方向(数据.x1-数据.cx1,数据.y1-数据.cy1)==0 and 状态==1 then
状态=0
if 上2 then
上2()
end
elseif 动作==2 and 点==2 and 计算方向(数据.x0-数据.cx0,数据.y0-数据.cy0)==2 and 计算方向(数据.x1-数据.cx1,数据.y1-数据.cy1)==2 and 状态==1 then
状态=0
if 下2 then
下2()
end
elseif 动作==2 and 点==3 and 计算方向(数据.x0-数据.cx0,数据.y0-数据.cy0)==0 and 计算方向(数据.x1-数据.cx1,数据.y1-数据.cy1)==0 and 计算方向(数据.x2-数据.cx2,数据.y2-数据.cy2)==0 and 状态==1 then
状态=0
if 上3 then
上3()
end
elseif 动作==2 and 点==3 and 计算方向(数据.x0-数据.cx0,数据.y0-数据.cy0)==2 and 计算方向(数据.x1-数据.cx1,数据.y1-数据.cy1)==2 and 计算方向(数据.x2-数据.cx2,数据.y2-数据.cy2)==2 and 状态==1 then
状态=0
if 下3 then
下3()
end
elseif 动作==2 and 点==3 and 计算方向(数据.x0-数据.cx0,数据.y0-数据.cy0)==-1 and 计算方向(数据.x1-数据.cx1,数据.y1-数据.cy1)==-1 and 计算方向(数据.x2-数据.cx2,数据.y2-数据.cy2)==-1 and 状态==1 then
状态=0
if 左3 then
左3()
end
elseif 动作==2 and 点==3 and 计算方向(数据.x0-数据.cx0,数据.y0-数据.cy0)==1 and 计算方向(数据.x1-数据.cx1,数据.y1-数据.cy1)==1 and 计算方向(数据.x2-数据.cx2,数据.y2-数据.cy2)==1 and 状态==1 then
状态=0
if 右3 then
右3()
end
end
return true
end
function 状态锁()
if 状态==1 then
状态=0
task(冷却,function()
if 状态==0 then
状态=1
end
end)
end
end
function 计算方向(bx,by,滑动阈值)
滑动阈值=滑动阈值 or 灵敏度
local 横向偏移有效=math.abs(bx)>=滑动阈值
local 纵向偏移有效=math.abs(by)>=滑动阈值
if not 横向偏移有效 and not 纵向偏移有效 then
return false
end
local 角度=math.deg(math.atan2(by,bx))
if 角度>-45 and 角度<45 then
return 1
elseif 角度>=45 and 角度<=135 then
return 2
elseif 角度>135 or 角度<-135 then
return -1
else
return 0
end
end
end
初始化(vv,{
上=function()
end
,
下=function()
end
,
左=function()
end
,
右=function()
end
,
上2=function()
end
,
下2=function()
end
,
左2=function()
end
,
右2=function()
end
,
上3=function()
end
,
下3=function()
end
,
左3=function()
end
,
右3=function()
end
})
我了个天呐,你这个英文导致内置讯飞发出了奇怪的报名,差点没给我整死。就是 Android LUA Plus这个英文你不知道是怎么输入的,差点没震死我
黑黑梦神
哟,这不是嗯,帅气的隋浩行吗?