游戏分辨率改变的话,有什么应对方法呢?
情境一:游戏分辨率改变,图标大小不变,坐标动态变化
解决方法:通过找图:游戏图标不变,找图的方式是最便捷的。
代码例子:
hwnd =Plugin.Window.MousePoint()//获取鼠标指定窗口的窗口句柄
sRect =Plugin.Window.GetClientRect(Hwnd)//获取窗口客户区大小
s=split(sRect,"|")
qx=s(0):qy=s(1):zx=s(2):zy=s(3)//qx,qy是左上角的 xy坐标; zx是窗口的宽,zy是窗口的高
CallFindPic(260,186,zx*0.5,zy*0.5,"游戏图片.bmp",0.9,mx,my)
这里的qx,qy两个原始坐标(例子中的qx,qy原始坐标为 (0,0)),用实际坐标 260,186代替,因为不管按键窗口怎么缩小,我们要找的图标最终的位置是在260,186,分辨率变大图标则往右边移动。
图3-800*600分辨率下“精品教程”图标位置大小
图4-1024*768分辨率下“精品教程”图标位置大小
为什么要在“CallFindPic(260,186,zx*0.5,zy*0.5,"游戏图片.bmp",0.9,mx,my)”这里zx,zy乘以0.5呢?就是咱提高脚本效率的秘籍了。找图范围缩小为窗口的一半,因为例子中的图标不管窗口分辨率多大,图标在窗体中的位置比例都不会改变。为了更效率的找图,尽量减少找图的范围减少找图的时间。如下:
图5-800*600分辨率下“精品教程”图标在窗体的长1/2、宽1/2左右
图6-1024*768分辨率下“精品教程”图标在窗体的长1/2、宽1/2左右