pygame.mouse.get_pos () не обновляет местоположение во время цикла - PullRequest
2 голосов
/ 11 марта 2019

Я пытаюсь создать инструмент на python, который возвращает ваше текущее местоположение курсора и предыдущее местоположение курсора, но когда я запускаю этот код, cur всегда остается таким же, как и при инициализации кода. Я пытался удерживать курсор и перемещать его, но ничего не изменится cur.

import pygame
pygame.init()
gameDisplay = pygame.display.set_mode((400, 400))
white = (255, 255, 255)
gameDisplay.fill(white)
pygame.display.update()
event = True
cur = pygame.mouse.get_pos()
curList = []
while event:
    cur = pygame.mouse.get_pos()
    curList.append(cur)
    if len(curList) >= 2:
        curList.pop(0)
    print(curList)

1 Ответ

1 голос
/ 11 марта 2019

Есть пара проблем с кодом ОП. Для начала это не обработка очереди событий, поэтому (вероятно) именно поэтому вы не получаете обновления мыши. Это также позволяет вам корректно выйти из программы.

import pygame
pygame.init()
gameDisplay = pygame.display.set_mode((400, 400))
white = (255, 255, 255)

curList = [ (0,0) ]
done = False

while not done:
    # paint the screen
    gameDisplay.fill(white)
    pygame.display.update()

    # handle user interaction, at least exiting the window
    for event in pygame.event.get():
        if ( event.type == pygame.QUIT ):
            done = True

    cur = pygame.mouse.get_pos()
    # Append a new mouse position, iff it's moved
    if ( cur != curList[-1] ):
        curList.append(cur)
        if len(curList) >= 2:
            curList.pop(0)
        print(curList)

Я изменил отслеживание точек, чтобы обновлять список только в том случае, если входящая точка уже не совпадает с последней в списке. Но, учитывая список только один пункт в любом случае, это все немного спорно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...