跳至主要內容

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() -- 抬起手指
  • 上面的例子是“向上滑”的情況;如果是向下、向左、向右滑動,就把“超過目標的位置”換成對應方向上略微越過目標的位置。
  • 不涉及螢幕邊緣時,一般只要先滑到超過目標的位置,再往回滑到目標位置,就已經是精確且沒有慣性的快速滑動。
  • 如果“超過目標的位置”會落到螢幕外,那麼這一步實際上是無效的,所以應該先快速滑到螢幕邊緣,再往回滑一點,最後慢慢滑到目標位置。
  • 就算目標位置剛好在螢幕邊緣,也建議先滑到邊緣、再往回滑一點、最後慢慢滑回目標位置,這樣通常比直接停在邊緣更穩定。