屏幕区域定义及度量 - nanpuhaha/SerpentAI GitHub Wiki

提示:本教程使用 spritex 来测量屏幕区域。一个可用的 Serpent.AI 启动器应该包含所有 pip install spritex 的相关依赖。

在你的游戏插件中定义屏幕区域能为你的 GameAPI 和 GameAgent 实体带来很多实用的特性。在下面的指导中,我们将会纵览测量和定义屏幕区域的过程。我们将会使用 OpenRCT2 作为我们的游戏,但是这个过程对于任何游戏都是相类似的。

启动游戏

运行 serpent launch OpenRCT2

从游戏中捕捉帧

  1. 手动获取游戏中你所感兴趣的屏幕区域。
  2. 使用 serpent capture frame OpenRCT2 1 命令捕获几帧图像(捕获的内容将存放在 datasets/collect_frames 目录中)。
  3. 如果需要的话,在游戏的其他图像区域重复该操作。

使用 spritex 测量你的游戏区域并在游戏插件中进行注册

spritex 中打开一个已捕获的帧图像

spritex datasets/collect_frames/<frame_file_name>.png

你会看到类似下面这样的内容:

测量屏幕区域

  1. 点击 Toggle Grid 按钮。
  2. 用鼠标滚轮放大,直到你能够看见像素网格。
  3. 点击 Select Region 按钮。
  4. 在你的屏幕区域上拖动选区。

  1. 点击 Copy Region to Clipboard 按钮。

在游戏插件中注册屏幕区域

  1. screen_regions 中,用你的光标指向下一个条目, 然后从剪贴板中粘贴区域到这里。你会看到类似下面的内容:
    @property
    def screen_regions(self):
        regions = {
            "REGION": (626, 348, 708, 428)
        }
  1. REGION 重命名为一个合适的标签名称。

完成啦!如果需要的话,对其他屏幕区域也可以重复上面的过程