紫猫学院社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 89|回复: 0

[教程源码] 缩小手机屏幕

[复制链接]

2

主题

8

帖子

8

积分

按键电脑&手机班学员

Rank: 8Rank: 8

猫粮
35
发表于 2019-9-18 23:37:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
模拟缩小手机画面,支持多分辨率,模拟人手动作,坐标和延迟小范围随机
紫猫插件找不到这个,只能自己造轮子....


[Lua] 纯文本查看 复制代码
local t_screen = { w = 0, h = 0, colordep = 0, rotation = 0, border_range_x = 0, border_range_y = 0 }  --屏幕相关信息表

--初始化插件
function fann.Init()
    fann.GetDeviceInfo()
    Print_("3338插件初始化完毕")
    return 0
end

--初始化设备信息
function fann.GetDeviceInfo()
    --取屏幕大小
    t_screen.w, t_screen.h = LuaAuxLib.GetScreenInfo(0), LuaAuxLib.GetScreenInfo(1) --分辨率
    t_screen.colordep = LuaAuxLib.GetScreenInfo(2)    --屏幕色深
    t_screen.rotation = LuaAuxLib.GetScreenInfo(3)    --屏幕旋转方向
    return t_screen
end


[Lua] 纯文本查看 复制代码
--屏幕缩小操作    功能函数
--@mode 为-1时缩小,其它为放大
--第二个参数是连续缩小的次数,默认只1次,int类型
--支持多分辨率,模拟人手动作,坐标和延迟小范围随机
--移动轨迹模拟人手,最好不要太直线  ---懒,没写。
function fann.ZoomScreen(mode, ...)
    --模拟右手
    --大拇指先按左下角,食指再按右上角

    local x1, y1, nx1, ny1, x2, y2, nx2, ny2, nx, ny
    local w, h = t_screen.w, t_screen.h

    local count = ... or nil

    --*********计算坐标*****
    --拇指按下的坐标
    x1 = w / 4 + zm.RndNum(1, w / 10)   --宽度取屏幕总宽度的1/4+(0-总宽度的1/10)随机数
    y1 = (h - (h / 4)) + zm.RndNum(1, h / 10)
    --食指按的坐标
    x2 = (w - (w / 4)) + zm.RndNum(1, w / 10)
    y2 = h / 4 + zm.RndNum(1, h / 10)
    --二指最后在中心点交汇,拇指偏左下
    nx = x1 + math.abs((x2 - x1) / 2)   --nx,ny为真正中心点
    ny = y2 + math.abs((y1 - y2) / 2)
    --拇指偏移
    nx1 = nx - (w / 100 + (w / 1000) * zm.RndNum(1, 20))
    ny1 = ny + (h / 100 + (h / 1000) * zm.RndNum(1, 20))
    --食指偏移
    nx2 = nx + (w / 100 + (w / 1000) * zm.RndNum(1, 20))
    ny2 = ny - (h / 100 + (h / 1000) * zm.RndNum(1, 20))

    --点击函数
    local function f()
        --按下2个手指
        _fann.TouchDown(x1, y1, 1)
        zm.Delay(10, 50)
        _fann.TouchDown(x2, y2, 2)
        zm.Delay(10, 50)
        --二指几乎同时移动到交点附近
        --这是直直的划动,以后要改成不规则的
        _fann.TouchMove(nx1, ny1, 1, zm.RndNum(100, 300))
        _fann.TouchMove(nx2, ny2, 2, zm.RndNum(100, 300))
        zm.Delay(50)
        _fann.TouchUp(1)
        _fann.TouchUp(2)
    end

    if mode == -1 then
        --缩小
        if count then
            for i = 1, count do
                f()
                zm.Delay(300, 500)
            end
        else
            f()
        end
    else
        --屏幕放大,我还没用到,先不写
        --TODO
    end

end

function _fann.TouchDown(x, y, id)
    return LuaAuxLib.TouchOperation(0, x, y, id, 0)
end
function _fann.TouchMove(x, y, id, times)
    return LuaAuxLib.TouchOperation(1, x, y, id, times)
end
function _fann.TouchUp(id)
    return LuaAuxLib.TouchOperation(2, 0, 0, id, 0)
end

学号3338
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|紫猫编程学院  

GMT+8, 2019-10-16 23:08

Powered by Discuz! X3.4

© 2012-2018 紫猫编程学院

快速回复 返回顶部 返回列表