跳到主要内容

touch 示例代码

示例

-- 可以这样:
touch.on(306, 300):step_len(2):step_delay(0):move(350, 800):msleep(1000):off()
--
-- 上面那个例子也能写成这样:
touch.on(306, 300) -- 模拟手指在 306,300 这个坐标点接触屏幕
:step_len(2) -- 设置移动步长为 2
:step_delay(0) -- 设置移动每步延迟为 0
:move(350, 800) -- 以上面两个参数所设置移动到 350,800 这个坐标
:msleep(1000) -- 等 1000 毫秒 (也就是 1 秒)
:off() -- 手指离开屏幕
--
-- 或是这样:
local te = touch.on(306,300)
te:step_len(2)
te:step_delay(0)
te:move(350, 800)
te:msleep(1000)
te:off()
--
-- 通常情况下,滑动代码可以写成这样
touch.on(306, 300)
:move(350, 800)
:msleep(1000)
:off()
--
-- 等效于
touch.on(306, 300):move(350, 800):msleep(1000):off()
--
-- 也可以这样用于模拟轻触屏幕一次
touch.on(306, 300):msleep(30):off()
--

快速精确滑动技巧

-- 更稳定的快速精确滑动方式通常是:
-- 先快速滑到略微超过目标的位置,再往回滑到目标位置
touch.on(125, 2000) -- 在起始坐标按下
:step_len(10) -- 步长设长以便快速滑动
:step_delay(1) -- 步骤延迟设为 1ms 以便快速滑动
:move(125, 505 - 20) -- 先快速滑到略微超过目标的位置(这里示例是向上滑,所以 y 更小)
:step_len(1) -- 往回滑时把步长缩短,减少惯性
:step_delay(20) -- 往回滑时适当减速,让轨迹更稳
:move(125, 505) -- 再往回滑到目标位置
:delay(200) -- 抬起前停顿一段时间
:off() -- 抬起手指
  • 上面的例子是“向上滑”的情况;如果是向下、向左、向右滑动,就把“超过目标的位置”换成对应方向上略微越过目标的位置。
  • 不涉及屏幕边缘时,一般只要先滑到超过目标的位置,再往回滑到目标位置,就已经是精确且没有惯性的快速滑动。
  • 如果“超过目标的位置”会落到屏幕外,那么这一步实际上是无效的,所以应该先快速滑到屏幕边缘,再往回滑一点,最后慢慢滑到目标位置。
  • 就算目标位置刚好在屏幕边缘,也建议先滑到边缘、再往回滑一点、最后慢慢滑回目标位置,这样通常比直接停在边缘更稳定。