屏幕区域定义及度量 - nanpuhaha/SerpentAI GitHub Wiki
提示:本教程使用 spritex 来测量屏幕区域。一个可用的 Serpent.AI 启动器应该包含所有 pip install spritex
的相关依赖。
在你的游戏插件中定义屏幕区域能为你的 GameAPI 和 GameAgent 实体带来很多实用的特性。在下面的指导中,我们将会纵览测量和定义屏幕区域的过程。我们将会使用 OpenRCT2 作为我们的游戏,但是这个过程对于任何游戏都是相类似的。
启动游戏
运行 serpent launch OpenRCT2
从游戏中捕捉帧
- 手动获取游戏中你所感兴趣的屏幕区域。
- 使用
serpent capture frame OpenRCT2 1
命令捕获几帧图像(捕获的内容将存放在 datasets/collect_frames 目录中)。 - 如果需要的话,在游戏的其他图像区域重复该操作。
使用 spritex 测量你的游戏区域并在游戏插件中进行注册
在 spritex 中打开一个已捕获的帧图像
spritex datasets/collect_frames/<frame_file_name>.png
你会看到类似下面这样的内容:
测量屏幕区域
- 点击 Toggle Grid 按钮。
- 用鼠标滚轮放大,直到你能够看见像素网格。
- 点击 Select Region 按钮。
- 在你的屏幕区域上拖动选区。
- 点击 Copy Region to Clipboard 按钮。
在游戏插件中注册屏幕区域
- 在
screen_regions
中,用你的光标指向下一个条目, 然后从剪贴板中粘贴区域到这里。你会看到类似下面的内容:
@property
def screen_regions(self):
regions = {
"REGION": (626, 348, 708, 428)
}
- 将 REGION 重命名为一个合适的标签名称。