今偶遇一群友私聊问.游戏脚本自动打怪需要释放技能. 但是每个技能都有不同的冷却时间,释放完一次后需要等冷却时间过了才能释放下一次. 问:怎么来判断技能是否在冷却中 这里提供两种方式:
第1种方法:最简单.的方式.游戏技能冷却时间都是固定的.我们释放技能后记录一下这个技能的释放时间. 然后下次需要释放时,我们判断一下离上次释放间隔时间是否大于冷却时间.大于就释放,否则就不释放. 这方法的优点在于操作简单,缺点在于,如果中途停止脚本,或者启动脚本前手动释放过技能. 那第一次执行的时候就不能准确判断这个技能是否还在冷却中.只能是首次释放不管有没有冷却都强制释放一次,然后在等待. 这样操作第一次和第二次释放技能时间都是不准确的.从第三次开始就能正常准确的计算了.
第2种方法: 以我这个游戏为例,技能释放后技能会变暗,然后随着冷却时间的减少会逐步减少变暗的区域.具体看下图技能演示
通过这个图片观察,我们可以使用以下思路来判断.就是通过对比指定位置的技能图片是否有暗色,有就是冷却中. 但是这个方法由于每个技能图片都不一样,暗色时背景也不一样,所以判断有难度. 所以我们在像一个办法,我们看出来了这个图片是动态的,暗色区域大概0.5秒就会减小一点. 这样的话我们先把技能截图,然后等待0.5秒后在把原来的截图和现在的图做一个对比.如果图片变化了就是冷却中,反之则已经冷却完了. 下面上实例代码. 看下图.我们的技能栏有10个技能,我们需要判断所有的技能.所以我们要用上面的方法把所有技能都判断一遍. 具体看代码吧,上面注释的很清楚
当然 这也就是提供一个思路而已,肯定不是最优选择.反正只要你能利用他的变化来做判断就行了.不管你怎么做到的.管它花猫白猫能抓到老鼠就是好猫
|