资源预览内容
第1页 / 共2页
第2页 / 共2页
亲,该文档总共2页全部预览完了,如果喜欢就下载吧!
资源描述
在奇迹世界里面,血条的颜色是并不是一个固定的数值。而空血状态的下的也不是固定的数值。我们应该怎样来根据这个颜色来判断何时加血呢?比较简单的办法是用 ifcolor 命令的相似颜色。可是有的时候你颜色设置的不好,并不能准确的来判定。其实还有更准确点的办法。让我们先来分析一下奇迹世界的血条在 1024*768 分辨率下,血条的起始坐标是 87,11 对应的颜色是#007108 终点坐标是 295,11 对应的颜色是#00B00C再看一段其他坐标点对应的颜色数值:104,11=007708105,11=007708106,11=007708107,11=007808108,11=007808109,11=007808110,11=007808111,11=007908112,11=007909113,11=007909114,11=007A09115,11=007A09116,11=007A09117,11=007B09这些是满血时候坐标的一段变化情况。大家有没有发现其中的规律,也就是这个血条是在一定范围内逐渐变化的。直接看血条的颜色我们也能看出来。是一个线性渐变的血条。其中颜色的最低值是#007108 最高值是#00B00C 拿#007108 来说,其中的 00 是 Blue 的值,71 是 Green 的值,08 是 Red 的值我们可以用 VBS 里面的 RGB 函数来求出这个颜色的具体 RGB 值是多少具体用法是:具体用法是:RGB(RGB(red,green,blue) ) 其中其中 redred greengreen blueblue 必须是必须是 0-2550-255 之间的整数,所以我们要先之间的整数,所以我们要先把他们转成把他们转成 1010 进制的。进制的。可以用下面的代码来求 1.C=“007108“2.VBS r=Cint(“&H“ & Right(c,2)3.VBS g=Cint(“&H“ & Mid(c,3,2)4.VBS b=Cint(“&H“ & Left(c,2)5.VBS a=RGB(r,g,b)6.VBSCall MessageBox (a)复制代码得到的结果是#007108=28936#00B00C=45068也就是血条颜色的 RGB 值范围是 28936-45068 之间,也就是如果 x 坐标在 87-295 之间,y 为 11 的时候。这个点的 RGB 在这个范围之内说明是有血状态。这样的话我们可以通过先获取血量像素点的颜色值来判断是否为有血状态,代码如下: 1.VBSCall c=GetPixelColor(x,y)2.VBS r=Cint(“&H“ & Right(c,2)3.VBS g=Cint(“&H“ & Mid(c,3,2)4.VBS b=Cint(“&H“ & Left(c,2)5.VBS a=RGB(r,g,b)6.If a28936 and a06. VBSCall HPYanshe=GetPixelColor(HPYansheX,11)7. VBS HPYansheb=Cint( “&H“ & Left(HPYanshe,2)8. If HPYansheb09. KeyPress 57,110. EndIf 11. EndIf 12. Delay 5013. KeyPress 48,114. Delay YC15. Goto 继续复制代码血条可以这么来判断,蓝条当然也可以。具体写法大家再自己考虑一下吧。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号