OnmyojiAutoScript模拟器分辨率异常问题分析与解决方案

OnmyojiAutoScript模拟器分辨率异常问题分析与解决方案

【免费下载链接】OnmyojiAutoScript Onmyoji Auto Script | 阴阳师脚本 【免费下载链接】OnmyojiAutoScript 项目地址: https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript

问题背景

在使用OnmyojiAutoScript(阴阳师自动化脚本)时,许多用户会遇到模拟器分辨率异常的问题。这类问题通常表现为脚本无法正确识别游戏界面、点击位置偏移、或者直接报错退出。本文将深入分析分辨率异常的根本原因,并提供详细的解决方案。

分辨率要求分析

核心分辨率标准

OnmyojiAutoScript对模拟器分辨率有严格的要求,必须设置为1280×720像素。这是脚本设计的基准分辨率,所有图像识别和坐标计算都基于这个标准。

mermaid

为什么必须是1280×720?

  1. 图像模板匹配:脚本使用预先制作好的图像模板进行界面识别
  2. 坐标定位精度:所有点击位置都是基于1280×720分辨率计算的
  3. 性能优化:统一分辨率可以避免动态调整带来的性能开销

常见分辨率异常问题

问题1:分辨率不匹配

# 在screenshot.py中的分辨率检查逻辑
def check_screen_size(self):
    width, height = image_size(self.image)
    logger.attr('Screen_size', f'{width}x{height}')
    if width == 1280 and height == 720:
        self._screen_size_checked = True
        return True
    else:
        logger.critical(f'Resolution not supported: {width}x{height}')
        logger.critical('Please set emulator resolution to 1280x720')
        raise RequestHumanTakeover

问题2:屏幕方向错误

当检测到720×1280(竖屏)时,脚本会尝试自动旋转:

elif not orientated and (width == 720 and height == 1280):
    logger.info('Received orientated screenshot, handling')
    self.get_orientation()
    self.image = self._handle_orientated_image(self.image)
    orientated = True

问题3:纯黑屏问题

在某些模拟器上可能会获取到纯黑色的截图:

color = get_color(self.image, area=(0, 0, 1280, 720))
if sum(color) < 1:
    logger.warning('Received pure black screenshots from emulator')

解决方案

方案1:手动设置模拟器分辨率

模拟器类型设置方法推荐参数
雷电模拟器设置→性能设置→分辨率1280×720 (dpi 240)
夜神模拟器系统设置→性能设置→分辨率1280×720 (平板模式)
MuMu模拟器设置→界面→分辨率1280×720
逍遥模拟器设置→性能设置→分辨率1280×720

方案2:使用脚本内置的ADB命令调整

# 通过ADB命令设置分辨率
def set_resolution_via_adb(self, width=1280, height=720, dpi=240):
    cmd = f"adb shell wm size {width}x{height}"
    self._execute(cmd)
    cmd = f"adb shell wm density {dpi}"
    self._execute(cmd)

方案3:修改配置文件

在config目录中找到对应的设备配置文件,确保分辨率设置正确:

device:
  resolution: 1280x720
  dpi: 240
  orientation: landscape

故障排查流程

mermaid

高级调试技巧

使用调试模式查看当前分辨率

# 在device.py中添加调试信息
def debug_resolution(self):
    screenshot = self.screenshot()
    width, height = image_size(screenshot)
    logger.info(f"当前分辨率: {width}x{height}")
    logger.info(f"屏幕方向: {self.orientation}")

常见的分辨率相关错误代码

错误代码含义解决方法
RESOLUTION_NOT_SUPPORTED分辨率不支持调整为1280×720
ORIENTATION_MISMATCH屏幕方向错误设置为横屏模式
BLACK_SCREEN_DETECTED获取到黑屏更换截图方法

预防措施

1. 初始化检查

在脚本启动时添加分辨率验证:

def initialize_resolution_check(self):
    """初始化时检查分辨率设置"""
    if not self.check_screen_size():
        self.auto_adjust_resolution()

2. 定期监控

设置定时任务监控分辨率变化:

def resolution_monitor(self):
    """每5分钟检查一次分辨率"""
    monitor_timer = Timer(300)
    while True:
        if monitor_timer.reached():
            if not self.check_screen_size():
                logger.warning("分辨率发生变化,尝试自动调整")
                self.auto_adjust_resolution()
            monitor_timer.reset()

总结

分辨率异常是OnmyojiAutoScript使用过程中最常见的问题之一。通过本文的分析和解决方案,用户可以:

  1. 理解分辨率要求的必要性
  2. 识别各种分辨率相关的问题
  3. 掌握多种解决方法
  4. 预防未来可能出现的分辨率问题

记住,保持模拟器分辨率为1280×720横屏模式是确保脚本正常运行的关键。如果遇到复杂问题,建议查看日志文件中的详细错误信息,或者参考脚本的官方文档。

提示:定期更新OnmyojiAutoScript到最新版本,开发者会不断优化对各类模拟器的兼容性。

【免费下载链接】OnmyojiAutoScript Onmyoji Auto Script | 阴阳师脚本 【免费下载链接】OnmyojiAutoScript 项目地址: https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值