Python 为什么赢了';添加pyautogui条件后,我的代码是否正常运行?
我试图创建一个程序/游戏,你可以在屏幕上画任何东西,程序将检测屏幕上画的东西,并在终端中打印一条语句,我在这里使用pyautogui检测图像,因为它的“信心”参数和pygame,因为我打算稍后将其制作为一个游戏,并且需要其中的一些函数。但是,当我添加pyautogui条件并运行代码时,光标消失,加载光标(macOS上旋转的色轮)出现,不允许我绘制任何东西。cloud_default.png是一个普通云的透明图像,我希望它能够检测到,但我的光标不允许我绘制,当我在屏幕上拖动它时,pyautogui似乎无法检测到该图像。我该如何解决这个问题?以下是完整的代码:Python 为什么赢了';添加pyautogui条件后,我的代码是否正常运行?,python,pygame,pyautogui,Python,Pygame,Pyautogui,我试图创建一个程序/游戏,你可以在屏幕上画任何东西,程序将检测屏幕上画的东西,并在终端中打印一条语句,我在这里使用pyautogui检测图像,因为它的“信心”参数和pygame,因为我打算稍后将其制作为一个游戏,并且需要其中的一些函数。但是,当我添加pyautogui条件并运行代码时,光标消失,加载光标(macOS上旋转的色轮)出现,不允许我绘制任何东西。cloud_default.png是一个普通云的透明图像,我希望它能够检测到,但我的光标不允许我绘制,当我在屏幕上拖动它时,pyautogui
import pygame
import sys
from pygame.locals import *
import pyautogui
import time
pygame.init()
# COLORS
black = (0, 0, 0)
white = (255, 255, 255)
win_size = (1067, 825)
scr = pygame.display.set_mode(win_size)
scr.fill(white)
pygame.display.set_caption('Draw!(or Die)')
pygame.display.update()
clock = pygame.time.Clock()
draw = False
while True: # MAIN GAME LOOP
clock.tick(2048)
mx, my = pygame.mouse.get_pos()
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
elif event.type == MOUSEBUTTONDOWN:
draw = True
elif event.type == MOUSEBUTTONUP:
draw = False
if pyautogui.locateOnScreen('cloud_default.png') is not None:
print('detected')
time.sleep(0.1)
else:
print('not detected')
time.sleep(0.1)
if draw:
pygame.draw.circle(scr, black, (mx, my), 20)
pygame.display.update()
您的应用程序无法工作,因为
时间。睡眠(0.1)
。此外,pyautogui.locateOnScreen
非常耗时。当您尝试在事件循环中加载图像时,您将永远无法平滑地绘制。pygame.image.load不只是加载图像以用于代码吗?如何检测屏幕上是否存在类似于已存在图像的手绘图像?pyautogui还有“confidence”参数,允许用户更自由地绘制类似于源图像的图片(默认为cloud_)。如果有办法使用pygame.image.load,请告诉我屏幕上的位置
仅检测像素完美匹配。看见但是,它太慢了,无法运行每一帧或事件循环。你是对的,它太慢了,你能为我尝试做的事情推荐其他东西吗?哦,谢谢你的帮助!