• 新浪微博:
  • 微信 :
按键精灵电脑版
立即下载

软件版本:2014.05
软件大小:21.6M
更新时间:07-04

按键精灵安卓版
立即下载

软件版本:3.2.9
软件大小:62.5M
更新时间:12-07

按键精灵iOS版
立即下载

软件版本:1.3.1
软件大小:29.2M
更新时间:09-29

按键精灵Mac版
立即下载

软件版本:1.1.0
软件大小:12.3M
更新时间:12-29

快捷导航

登录 后使用快捷导航
没有帐号? 注册

登录 注册
返回列表 12345678» / 54
发新话题 回复该主题

[按键精灵安卓版] 让安卓脚本适应所有分辨率-【201510期】 [复制链接]

1#

让脚本能够适配所有分辨率的特殊技巧



本文按键学院提供技术支持



按键学院交流①群(1群已满):376122403

按键学院交流②群(2群):372671254

按键学院交流③群(3群):170084238

【按键学院】安卓课程(115768679)




安卓脚本的多分辨率适配一直都是让大家比较头疼的问题。因为安卓手机的多种多样,分辨率也不一致,导致了写完一个脚本后还需要考虑到很多不同分辨率下的运行情况。
在之前的院刊中有介绍了两种适应分辨率的方法,一个是通过编写一个比例转换的函数,对特征数据进行比例转换,另外更简单的方法就是用SetScreenScale 屏幕缩放命令,让按键自动转换比例数据。安卓实战——让脚本适应多种分辨率
但是SetScreenScale命令并不是万能的,无法保证100%的在所有的分辨率下都能兼容,对于部分颜色特征无法识别的我们就需要进行单独处理。

建立多点特征数据

编写脚本的时候需要先把多点颜色特征保存到数组里,实现数据和函数分离,方便之后的调用、管理,把特征数据全部封装到函数里,然后在脚本的开头调用
这里假设颜色特征是在480*854分辨率下获取到,脚本也就基于480*854分辨率进行开发。
  1. Dim 特征1,特征2,特征3

  2. Function 主数据
  3. 特征1 = Array(349, 241, 450, 337, "FAFAFA", "17|-11|201C1C,-7|-48|201C1C,-17|-15|1733EC,-20|-5|1430E9")
  4. 特征2 = Array(149, 231, 235, 321, "CBB41E", "-33|-43|E4DEA3,1|-44|E0E06B,-30|7|B9A971,-56|12|AE690A")
  5. 特征3 = Array(343, 525, 458, 625, "0DD100", "-15|40|FFFFFF,-33|55|0CBB00,-40|22|FFFFFF,-105|12|00C3FF")
  6. End Function
复制代码
这里是用多点找色的特征数据,前4个元素是找色的范围,后面两个数据是多点找色的第一个颜色点以及偏移颜色组

除了建立这个主数据外,需要再建立一个兼容用的数据函数。
例如:上面的三个特征中,在实际测试过程中,发现【特征1】在480*800的分辨率下无法识别,但是其他的特征可以正常识别,那我们需要建立一个兼容的数据函数,单独的在480*800分辨率下重新获取一次【特征1】的多点颜色数据
  1. Dim 当前分辨率,x,y
  2. x = GetScreenX()
  3. y = GetScreenY()
  4. 当前分辨率 = x & y

  5. Function 兼容数据
  6. If 当前分辨率 = 480800 Then '分辨率480*800 下的数据
  7. 特征1 = Array(249,239,342,323,"05B802","-20|17|FFFFFF,-48|25|D69C00,-19|41|272BDD,-33|-7|00D0EA")
  8. End If
  9. End Function
复制代码
因为只有【特征1】无法识别,所以只需要单独做这个数据就行了,其他的特征不需要重新做

封装一个屏幕缩放的函数
  1. Dim 开发分辨率

  2. Function 屏幕缩放
  3. Dim scrX,scrY
  4. '这里设置成开发的分辨率
  5. scrX = 480
  6. scrY = 854
  7. SetScreenScale scrX, scrY
  8. 开发分辨率 = scrX & scrY
  9. End Function
复制代码
编写多点找色函数
  1. Function 多点找色(颜色特征, 兼容分辨率)
  2. '当当前的分辨率和兼容分辨率参数一致时,就取消缩放,直接用兼容分辨率下的特征来进行找色
  3. If InStr(1, 兼容分辨率, 当前分辨率) > 0 and 当前分辩率 <> 开发分辩率 Then
  4. ResetScreenScale
  5. End If
  6. FindMultiColor 颜色特征(0), 颜色特征(1), 颜色特征(2), 颜色特征(3), 颜色特征(4), 颜色特征(5), 2, 0.9, intX, intY
  7. If intX > -1 Then
  8. 多点找色 = True
  9. Else
  10. 多点找色 = False
  11. End If
  12. '找色完成后重新缩放屏幕
  13. If InStr(1, 兼容分辨率, 当前分辨率) > 0 and 当前分辩率 <> 开发分辩率 Then
  14. Call 屏幕缩放()
  15. End If
  16. End Function
复制代码
完整代码以及具体应用
  1. Dim 当前分辨率,x,y,开发分辨率
  2. x = GetScreenX()
  3. y = GetScreenY()
  4. 当前分辨率 = x & y

  5. Dim 特征1,特征2,特征3

  6. Call 屏幕缩放()
  7. Call 主数据()
  8. Call 兼容数据() '把无法兼容的新的图色数据进行覆盖

  9. TracePrint 多点找色(特征1, 0)
  10. TracePrint 多点找色(特征1, 480800) '能够兼容480*854以及480*800两种分辨率图色数据
  11. TracePrint 多点找色(特征2, 0)
  12. TracePrint 多点找色(特征3, 0)

  13. Function 主数据
  14. 特征1 = Array(349, 241, 450, 337, "FAFAFA", "17|-11|201C1C,-7|-48|201C1C,-17|-15|1733EC,-20|-5|1430E9")
  15. 特征2 = Array(149, 231, 235, 321, "CBB41E", "-33|-43|E4DEA3,1|-44|E0E06B,-30|7|B9A971,-56|12|AE690A")
  16. 特征3 = Array(343, 525, 458, 625, "0DD100", "-15|40|FFFFFF,-33|55|0CBB00,-40|22|FFFFFF,-105|12|00C3FF")
  17. End Function

  18. Function 兼容数据
  19. If 当前分辨率 = 480800 Then '分辨率480*800 下的数据
  20. 特征1 = Array(249,239,342,323,"05B802","-20|17|FFFFFF,-48|25|D69C00,-19|41|272BDD,-33|-7|00D0EA")
  21. End If
  22. End Function

  23. Function 屏幕缩放
  24. Dim scrX,scrY
  25. '这里设置成开发的分辨率
  26. scrX = 480
  27. scrY = 854
  28. SetScreenScale scrX, scrY
  29. 开发分辨率 = scrX & scrY
  30. End Function

  31. Function 多点找色(颜色特征, 兼容分辨率)
  32. '当当前的分辨率和兼容分辨率参数一致时,就取消缩放,直接用兼容分辨率下的特征来进行找色
  33. If InStr(1, 兼容分辨率, 当前分辨率) > 0 and 当前分辩率 <> 开发分辩率 Then
  34. ResetScreenScale
  35. End If
  36. FindMultiColor 颜色特征(0), 颜色特征(1), 颜色特征(2), 颜色特征(3), 颜色特征(4), 颜色特征(5), 2, 0.9, intX, intY
  37. If intX > -1 Then
  38. 多点找色 = True
  39. Else
  40. 多点找色 = False
  41. End If
  42. '找色完成后重新缩放屏幕
  43. If InStr(1, 兼容分辨率, 当前分辨率) > 0 and 当前分辩率 <> 开发分辩率 Then
  44. Call 屏幕缩放()
  45. End If
  46. End Function
复制代码




学院院刊总目录:
http://bbs.anjian.com/showtopic-584228-1.aspx

本主题由 按键工程师 quitout 于 2015/10/22 17:08:12 执行 设置高亮 操作
2#

dfasfdsf

3#


4#

学习下

5#

分手的提高二徒儿二

6#

手机不仅仅要分辨率 听说DPI也会影响通用?

WWW.92AJ.CN
承接中小型 游戏/办公/投票/自动发货类 脚本
如果回答对你有所帮助请不要吝啬手中的鲜花
7#

学习一下

8#

啊让他而他

9#

的说法是对方是舒服舒服舒服1

10#

好噢噢噢噢 啊 啊

11#


12#

完整代码以及具体应用

13#

hJJ的

14#

111111111111111111111111

15#

学习学习

16#


17#


18#

232423423453453452345

19#

完整代码以及具体应用

20#


发新话题 回复该主题