首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复错误自动化游戏Python代码

如何修复错误自动化游戏Python代码
EN

Stack Overflow用户
提问于 2021-03-27 20:31:11
回答 1查看 23关注 0票数 0

我正在尝试通过Python使用自动化钢琴游戏,但是当我想要实现代码时,我得到了一个错误,如所附图片中所示请帮助我修复此错误,我使用** Python 3.8.4 **

代码语言:javascript
复制
*<!-- The Code -->*
import mss as mss
import numpy as np
from cv2 import cv2
import time
import pyautogui
import keyboard

pyautogui.PAUSE = 0.005


def take_screenshot():
    with mss.mss() as sct:
        filename = sct.shot(output="fullscreen.png")
    return filename


# take_screenshot()

def get_frame(region):
    with mss.mss() as sct:
        screen = np.array(sct.grab(region))
        screen_grayscale = cv2.cvtColor(screen, cv2.COLOR_BGR2BGRA)
        # print(screen_grayscale.shape)
        # cv2.imwrite('region.png', screen_grayscale)
    return screen_grayscale


def detect_tiles(frame):
    for x in range(frame.shape[0]):
        for y in range(frame.shape[1]):
            if frame[x, y] == 1:
                return x, y
    return None


region = {"top": 560, "left": 350, "width": 300, "height": 2}

time.sleep(3)

while True:
    if keyboard.is_pressed('q'):
        break
    start_time = time.time()
    frame = get_frame(region)
    coors = detect_tiles(frame)
    if coors:
        target_x = region['left'] + coors[1] + 1
        target_y = region['top'] + coors[0] + 1
        pyautogui.moveTo(x=target_x, y=target_y)
        pyautogui.mouseDown()
    print("%d FPS" % (1 / (time.time() - start_time)))

*<!-- end code -->*

我的错误图像:

EN

回答 1

Stack Overflow用户

发布于 2021-03-27 21:30:47

您的问题似乎源于framex,y不是单个值,而是值的列表或元组。因此,当您执行if frame[x,y] == 1时,您会得到类似于ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()的错误消息。

根据您想要完成的任务,您可以使用以下补救措施之一:

当且仅当framex和framey的所有元素都等于1时,framey使用.all方法,当且仅当framex和framey的所有元素都等于1时,该方法才会产生True。

当且仅当任何或framey元素等于1时,使用.any方法,该方法将导致True。使用以下内容:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66831374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档