1

我是一个菜鸟Java学习者。我正在尝试为一个简单的迷你游戏开发一个机器人(或培训师,等等),我需要分析屏幕上的图像并按下相应的动作。所以: -

我首先尝试为此使用 sikuli ScreenRegion,但并没有达到预期的效果。我尝试的是这样的: -

if(arrowSet.find(oneDown)!=null)
{
    r.keyPress(KeyEvent.VK_DOWN);
    r.keyRelease(KeyEvent.VK_DOWN);
    r.delay(20);
} 

但它只是跳到了动作,即使条件是假的。在这种情况下我的 ScreenRegion 应用程序是否错误?还是我应该使用与 sikuli 不同的东西?

4

2 回答 2

4

如果不需要使用 Java 并且您在 Windows 下工作,您可以考虑使用Automa - Python 工具/库来实现 UI 自动化。它允许对图像进行操作。

例如,要确定屏幕上是否存在图像:

Image("arrow_screenshot1.png").exists() # returns True or False

要单击图像:

click(Image("arrow_screenshot1.png"))

要找出图像坐标/中心:

Image("arrow_screenshot1.png").x # returns x-coordinate
Image("arrow_screenshot1.png").y # returns y-coordinate
Image("arrow_screenshot1.png").center # returns Point object

要等到图像出现在屏幕上:

wait_until(Image("arrow_screenshot1.png").exists)

等等

我认为使用Automa你可以很容易地实现你所需要的!

免责声明:我是Automa的开发人员之一

于 2013-08-07T12:26:07.127 回答
2

想通了,伙计们!似乎 sikuli 的图像识别是模糊的。它不能正常targetImage.setMinRank(1.00)工作,但是当我尝试用 运行程序时targetImage.setMinRank(0.99),它都运行流畅。谢谢你的帮助。

于 2013-08-07T16:49:41.430 回答