在我被击落之前,我意识到这个问题的'如何'答案可能有点争议,但我对'什么'更感兴趣。
在坚果壳中,我想知道可以使用哪些方法与PC视频游戏界面进行交互。我想创建一个可以从视频游戏市场界面中提取数据的程序。
我的第一个初步想法是我需要以编程方式拍摄屏幕截图,然后使用一些光学字符识别软件来提取文本。然后对提取的文本执行任何操作以获得我的煽动。
然后我想我可能只是更容易获得一些迷你屏幕截图,我只是用来在屏幕的某些部分找到匹配项。找到匹配后,我会知道屏幕上的文字是什么,而不必实际“提取”它。
对于那些已经做过这件事的人,你能指点一个方向吗?也许有一种我完全不知道的方法。
如果是这个问题不适合本论坛的情况。如果你能指引我到其他地方,我将不胜感激。
编辑:我应该补充一点,我不打算在这个项目上花一大笔钱......所以任何自由软件都是最好的。也许这是一项艰巨的任务。
答案 0 :(得分:0)
我开始认为Sikuli是我要去的方向。开源图像识别软件,集成了Python,Ruby,Java,JDBC,JavaScript等。
- 扩大问题 -
基本上有三类工具:
当您手动操作工作流程时,记录器,记录器会跟踪您的鼠标和键盘操作。停止录制后,您可以播放(自动运行您的worflow)。录音通常可以通过其他功能进行编辑和扩充。
GUI识别该工具允许以编程方式操作GUI元素,如按钮。这是基于内部结构和GUI元素名称及其功能的知识。其中一些工具也具有录制功能。
视觉工具“看到”屏幕上的图像(通常是虚角像素区域),并允许使用鼠标和键盘模拟对这些图像进行操作。使用这样的工具也可能会有一些记录器。
SikuliX属于第3类,目前没有录音机功能。
正在进行中的答案......
答案 1 :(得分:0)
在具有可修改UI的游戏中,与许多MMO一样,您可以创建一个mod,通过一系列可以使用光学传感器读取的黑白方块来传输数据。从那里,微控制器可以通过USB或wifi将数据传回PC。
答案 2 :(得分:0)
我作为菜鸟的方法。首先确定是否需要OCR 100%,我认为这在速度方面起着重要作用。
如果可能的话: 窗口中的游戏(允许故障排除和简单的故障排除) - 游戏有高对比度选项吗?将帮助Sikuli找到东西
然后你计划你的场景: 您必须为不同的情况创建不同的功能。很多游戏都是"你看到了吗?"然后"做这个"直到那个消失。
从您想要自动化的小部件开始,然后在它们上构建。确保您的零件可以扩展,以防需要进行小的更改,他们会。例如,如果你看到一个对象,你想打开菜单,让我们说一棵树。 假设您有某种行走算法。
setROI(region1) #focus here for tree
if exists(tRee):
click(loCation) #you could hit the shortcut key to opening the menu
click(iTem) #if the item moves in the menu then you may need to scroll to find it first or you can change the ROI and start seeing if sikuli can differentiate your item from one you dont want to click.
您可以将其循环到其他操作中并继续。古德勒克。