定向滑动 slide_d(table,number)
免费
格式 : slide_d( {起点x,起点y,终点x1,终点y1} , 速率 )
适用场景 : 游戏模拟手指滑动/单指滑动
关联叉叉助手函数 : createHUD、showHUD、hideHUD、touchDown、touchMove、touchUp、mSleep
单向运动,改变方向会重新从新的起点开始运动:
**
function slide_d(t,w)
local w = w or 5 --[[速率默认5像素,整数型]]
local id = createHUD() --[[创建一个HUD]]
local t = t or {0,0,0,0}
local x=t[3]-t[1]+1
local y=t[4]-t[2]+1
if x==0 then x=1
elseif y==0 then y=1 end --[[x,y除数不等于0]]
local k=y/x --[[y=kx+b b=0 ]]
local i,j = 0,0
local Lx,Ly=t[1],t[2]
if math.abs(x) > math.abs(y) then
j = x
if x < 0 then
w = 0 - w
end
else
j = y
if y < 0 then
w = 0 - w
end
end
if i < j and w < 0 then --倒序遍历
i,j = j,i
elseif i > j and w > 0 then --正序遍历
i,j = j,i
end
-- touchDown(1, Lx,Ly) --[[触摸按下]]
showHUD(id,"",12,"0xffff0000","0xffffff00",0,Lx,Ly,20,20)
mSleep(50)
for p=i,j,w do
if math.abs(x) > math.abs(y) then
x1, y1 = p,math.floor(p*k)
else
x1, y1 = math.floor(p/k),p
end
--touchMove(1, x1+Lx, y1+Ly) --[[移动]]
showHUD(id,"",12,"0xffff0000","0xffffff00",0,x1+Lx, y1+Ly,20,20)
ptable({x1+Lx,y1+Ly})
mSleep(20)
end
mSleep(50)
--touchUp(1, x1+Lx, y1+Ly) --[[松开]]
hideHUD(id) --隐藏HUD
end
slide_d({31,16,209,209},5)
协程:万向滑动 slide_w(num,num,num,src,num)
付费vip免费
格式 : slide_w( 手指编号[1-10], x, y, “按下/移动/抬起”, 速率 )
适用场景 : 操控游戏摇杆/多指滑动
关联叉叉助手函数 : createHUD、showHUD、hideHUD、touchDown、touchMove、touchUp、mSleep
一个起点,多个终点,主要操控摇杆:
图2我们不但要能往前走,同时也要保证能往回走,算法正确,则能回到原点。
--调用方法:
slide_w(1,300,460,"按下")
slide_w(1,250,460,"移动",10)
slide_w(1,350,460,"移动",10)
slide_w(1,350,600,"移动",10)
slide_w(1,100,800,"移动",10)
slide_w(1,350,800,"抬起",10)
vip群公告获取源码密码
一次函数算法原理:
b为常数,设置b=0,则y=kx,k=y/x,x=y/k
求k值:
1、把起点(x,y)看做(0,0)
2、计算终点(x1,y1)与起点(x,y)之间的距离,则x = x1-x,y = y1-y,k = (y1-y)/(x1-x)
计算斜线坐标:
for 循环,遍历x或y其中一个方向。
|x| > |y| 时:取x和k值,计算y值的参数,则y=x*k
|x| < |y| 时:取y和k值,计算x值的参数,则x=y/k