Печать команды Pyauto gui в pygame - PullRequest
0 голосов
/ 21 июня 2020

В настоящее время я пытаюсь создать код pyautogui / pygame, который отслеживает местоположение мыши и печатает шнуры в окне pygame. Вот что у меня есть:

import pygame
import pygame.freetype  
import pyautogui
import time

pygame.init()
POS = pyautogui.position()
screen = pygame.display.set_mode((800, 600))
GAME_FONT = pygame.freetype.Font("/Users/user/Desktop/Calibri.ttf", 24)
running = True

while running:
    for event in pygame.event.get():
       if event.type == pygame.QUIT:
          running = False

screen.fill((255, 255, 255))
while True:
    time.sleep(0.4)
    GAME_FONT.render_to(screen, (40, 350), POS, (0, 0, 0))
pass

pygame.display.flip()

pygame.quit()

Когда я запускаю этот код, я получаю сообщение об ошибке:

TypeError: Expected a Unicode or LATIN1 (bytes) string for text: got type Point

Как видите, переменная POS содержит команду; Я хотел бы, чтобы вывод команды был напечатан на моем экране pygame. Есть ли альтернатива, или я просто неправильно смотрю на это? Я изучил inte rnet и, как правило, последнее средство - задать вопрос здесь, так что: Любая помощь / критика приветствуются.

Ответы [ 2 ]

0 голосов
/ 05 июля 2020

Прежде всего, POS не является строкой, если вы хотите непрерывно изменять положение мыши, я рекомендую вам сделать следующее:

POS = pyautogui.position

GAME_FONT.render_to(screen, (40, 350), str(tuple(POS())), (0, 0, 0))

POS сохраняет функцию для позиции, и она выполняется when () добавляется, поэтому он будет выполняться каждый l oop при изменении позиции.

tuple () изменяет Point (x = 771, y = 168) на (771, 168)

str () превращает кортеж в строку, которая будет выводиться на экран.

0 голосов
/ 21 июня 2020

сначала, если POS не является переменной c stati, вы должны указать ее имя в нижнем регистре, так как прописные буквы используются для c переменных. Затем вы пытаетесь напечатать переменную типа точки, поскольку pyauto gui .position () возвращает координаты мыши. Попробуйте преобразовать его в строку: POS = str (POS)

...