马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
怎样让脚本在差别的分辨率下正常运行?让脚本去顺应各种的分辨率
由于在手机上运行脚本面对了一个分辨率差别的题目。它不像电脑那样可以修改分辨率,差别的手机分辨率大概差别,以是在安卓/IOS按键上编写脚本还必要举行分辨率的适配。
条件条件:
对脚本举行多分辨率适配是有肯定的条件条件的,而且有一些必要注意的地方。
1、这里先容的两种适配的方法条件是,脚本中不能利用找图的方式。可以利用 多点找色、多点比色、范围找色、指定点找色之类的下令
2、在取坐标和颜色点的时间必要注意:取点的时间只管取附近有雷同大概相近颜色的点,只管不要取边沿化的点。
由于在在分辨率转换的时间有大概会出现一些像素点的偏移,如果取的点的附近颜色差异大,那就会出现辨认不到的情况。
分辨率适配代码:
第一种:通过编写函数来实现对传入的多点数据举行比例转换
必要先把取到的多点数据利用 array 这个下令转换成数组举行存储,如许可以方便后期利用下令举行找色等等利用。同时也可以方便举行分辨率的转换。
起首我们必要先用下令获取到当前的屏幕分辨率,然后用当前的分辨率和制作脚本时间利用的分辨率举行盘算,得出他们的缩放比例。
- Dim win_x,win_y,win_w,win_h
- win_x = GetScreenX()
- win_y = GetScreenY()
- TracePrint "当前分辨率:" & win_x & "*" & win_y
- win_w=win_x/1080
- win_h=win_y/1920
- TracePrint "屏幕比例:" & win_w & ":" & win_h
win_w 这个是横向比例;win_h 这个是纵向比例。在之后的转换代码中会利用到。
然后我们必要编写个比例转换函数,对传入的数据举行坐标的转换。
- Function 比例换算(数组)
- Dim arr(),arr_bl(),i,n
- arr = 数组
- '把缩放比例放到数组中方便调用
- arr_bl=Array(win_w,win_h)
- i=0
- For Each n In arr
- If IsNumeric(n) = True Then
- '这里盘算根据比例差别,传入对应换算值 x坐标*win_x比例,y坐标*win_y比例
- arr(i)=n*arr_bl(i Mod 2)
- ElseIf InStr(1,n,"|")>0 Then
- Dim arr1(),str,arr2()
- arr1=Split(arr(i),",")
- str=""
- For Each n In arr1
- arr2=Split(n,"|")
- str=str & arr2(0)*win_w & "|" & arr2(1)*win_h & "|" & arr2(2) & ","
- Next
- arr(i)=Left(str,Len(str)-1)
- Exit For
- End If
- i=i+1
- Next
- 比例换算=arr
- End Function
利用方法:
- 对战 = 比例换算(Array(41,1074,195,1288,"BADBFE","-89|-10|0E46C7,23|-14|E0FBFF,15|105|75EDFF,27|137|40B3FF"))
- 天下对战 = 比例换算(Array(199, 1424, 355, 1694, "FBFFB3", "-17|5|9D5C1A,-74|46|FEE752,62|33|FFFFFF,-91|16|F8AA83"))
- 入场 = 比例换算(Array(164, 439, 260, 527, "A2F5FA", "-26|1|114477,800|26|2F2DE7,536|284|C4325D,-142|-84|ECA944"))
- 进入游戏 = 比例换算(Array(24, 601, 165, 705, "00C6FF", "17|13|1F3C48,-34|6|0563B7"))
- 再来一局 = 比例换算(Array(257, 649, 355, 752, "2874CE", "23|3|EAF5FC,-8|303|1CEAFB"))
- 返回 = 比例换算(Array(113, 539, 190, 621, "EBF5F9", "12|1|FFFFFF,217|7|4BCCF8,-98|13|4A79B8,247|-27|F2FFFF"))
- 确认 = 比例换算(Array(82, 507, 209, 638, "1358B5", "-6|74|F0F8FF,-96|96|75879F,-20|118|235DAE,114|144|EF9415"))
就是在录入数据的时间先用这个转换函数转换一遍即可。之后的找色等等利用就不必要条用这个转换函数了。
第二种:利用安卓/ios越狱按键自带的屏幕缩放下令 SetScreenScale
| 下令名称 | SetScreenScale | | 下令功能 | 设置当前脚本开发情况的屏幕分辩率,使脚本适配差别分辩率的装备 | | 下令参数 | width:整数型,脚本开发时利用的装备宽度height:整数型,脚本开发时利用的装备高度scale:可选参数,默以为1,0代表只对传入函数的坐标举行缩放,从函数返回坐标的不缩放,即为当前利用装备真实坐标。1代表传入函数的坐标举行缩放,函数返回的坐标举行反向缩放 | 这个下令另有个配套的下令,取消屏幕比例缩放设置: ResetScreenScale
这个下令利用起来很简朴,只要在代码的开始和竣事部门加上就好了。在脚本竣事部门要加上ResetScreenScale 下令。
对于多点颜色的数据也无需举行处理处罚。这个下令会自动对Tap、Touch、TouchDown、TouchMove、Swipe、GetPixelColor、FindColor、CmpColor、CmpColorEx、FindMultiColor 这几个下令传入的数据举行缩放处理处罚。
- SetScreenScale 1080, 1920
- '调用主函数
- Call 对战积分()
- ResetScreenScale
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |