【minitouch】如何實現(xiàn)拖拽效果

背景:想利用minitouch實現(xiàn)拖拽的效果,開始的思路是直接從坐標1滑動到坐標2,但是運行后發(fā)現(xiàn)沒有效果,后來終于解決了,因此把這個過程記錄下來。



minitouch的命令格式

minitouch 可以實現(xiàn)點擊、滑動、松開手指,基本命令如下:

d <contact> <x> <y> <pressure>?

示例輸入:?d 0 10 10 50 指在x=10,y=10,以壓力50按壓,并記錄此為第contact=0個操作位置

m <contact> <x> <y> <pressure>

示例輸入:?m 0 10 10 50 指操作目標contact=0 使用pressure=50的壓力原來坐標滑動到 x = 10,y =10

u <contact>

?示例輸入:u 0 指松開contact =0的操作目標

w <ms>

示例輸入:w 50,指立即等待?<ms>?毫秒

c

提交當前更改的觸摸集,使它的在屏幕上播放。在提交之前,輸入的命令不會有效果

minitouch實現(xiàn)拖拽效果

拖拽拆分,即點擊坐標點a(x1,y1),滑動到坐標點b(y1, y2)然后松開,使用minitouch的命令寫下來就

d 0 x1 y1 50

c

m 0 x1 y1 50

c

u

這是我第一階段輸入的命令,但是實際沒有起到滑動的效果。打開開發(fā)者模式中的坐標,可以指示觸摸軌跡的指針是有痕跡的,說明命令輸入有效但是沒有生效。

查了一下,看到一種思路就是將移動的路徑拆分成幾個小段,并在其中增加延時。所以把拖拽改成從起始位置到目標位置拆分10個中間節(jié)點,并且每個節(jié)點滑動過去后增加100毫秒的延時,在實現(xiàn)代碼中如下

d_x = (x2 - x1)/10

d_y = (y2 - y1)/10

command = ""

command += "d 0 {} {} 50\\nc\\n".format(x1, y1)

for i in range(0, 10):

? ? ?command += "m 0 {} {} 50\\nc\\n".format(x1 + i * d_x, y1 + i * d_y)

? ? command += "w 100\\nc\\n"

command += "m 0 {} {} 50\\nc\\n".format(end_x, end_y)

command += "u 0\\nc\\n"


再次運行,即可正常進行拖拽了??





參考文章:http://lm.432234.com/archives/1144.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容