分享一个手势代码

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

})

共 33 条评论
我是得导进AndroLua+ 还是导进QingsetLua+
妈呀,不好意思呀,写代码写入迷了,没想到他是幻想编辑器的,可可嗨可可嗨,抱歉哈,嗯,OK,走了。
梦月 [楼主] 6小时前
幻想编辑器和其他的两个都可以用。
但是得改一下,直接放进去容易报错的。 本人懒得改了,一会儿我再说吧,嗯。
梦月 [楼主] 6小时前
改的话,这个只要你会用的话,不用改也可以。 但你需要传一张表进去。 因为这个手势怎么说呢?我开始就是给自己开发游戏用的,所以在安卓乐家用是没问题的。
虽然你是在安卓这块编写的,可是两门语言完全用的是不同的逻辑,就算是在安卓上编写,那它俩也跑不通的。嗯,所以我给的建议是,如果要是在安卓这里运行,尽量改一下。虽然都是同款类型代码,但是终究还是有点差距的。
梦月 [楼主] 6小时前
我用的是。 androlua+5.0.22 编写的。
那如果我想在QingsetLua+ 里面运行的话,那也得改代码,因为他这个逻辑完全是不一样的。嗯,对。
AndroLua+ 版本 5.0.24 这个好用,,它好像是最新版,开发者好像不再更新了,嗯。
梦月 [楼主] 6小时前
我一直用的是5.0.22,因为以前我用5.0.24有问题。
哦,怎么就我这里没有问题呢?啊,应该是运气好,嗯。
梦月 [楼主] 6小时前
Kinsler 可能是,也是可以的,因为幻想据说就是用 Kinsler 写的。
幻想不是用QingsetLua+
梦月 [楼主] 6小时前
有一定概率可能是的,因为曾经老大在发录屏的时候,我听到过。
100%是的,我都不用猜测,10000%,百分之各十百千万10万百万千万亿十亿百亿千亿金十金百金千金虽然顺序不对,肯定是的,嗯。
你竟然有老大的联系方式!
而你的游戏乐园也是用QingsetLua+
特别是AndroLua+ 如果想运行你这个代码,必须得高精度给改一下,因为QingsetLua+ 虽然他俩是一个变成语言,但是第二个要比第一个简单很多,因为是中文编写的,所以肯定需要改一些东西才能运行进去的。 编程。 本楼
梦月 [楼主] 6小时前
因为这个最开始我就是在 A N D R O L U A 这边编写的。
lable 5小时前

我了个天呐,你这个英文导致内置讯飞发出了奇怪的报名,差点没给我整死。就是 Android LUA Plus这个英文你不知道是怎么输入的,差点没震死我

哎呀我天,这不我明月几时有先生吗?哪阵风给您吹过来了?
你以为你改个名字我就认不出你了吗?
本人的也一样。
梦月 [楼主] 5小时前
好家伙,等会儿我去试试。
我这里还可以呀,没有他说的那样糟糕。
那啥,我收回我刚刚的话。刚刚那我啥也没说,确实很严重。

黑黑梦神

这不,我亲爱的星河先生吗?

哟,这不是嗯,帅气的隋浩行吗?

梦月 [楼主] 6小时前
抓到一个星河。
没错,没错。
梦月 [楼主] 6小时前
哇,这个数字,好家伙!分享一个手势代码 , 作者:梦月 , 60次查看 6次评论 6次点赞56分钟前 发布于玩机互助
我再点一个赞,就变成了七个。