Отображение Pygame не обновляется даже после вызова pygame.display.update () - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь создать простую программу в pygame, в которой она будет отображать строки, которые будут вести к вашей мыши, но линии не исчезнут go даже после того, как я вызову pygame.display.update(). Весь экран начинает заполняться линиями. Вот код:

import pygame
pygame.init()

win = pygame.display.set_mode((720,360))
pygame.display.set_caption("Random Code")

run = True
font = pygame.font.SysFont("javanesetext",30,True,False)#Bold = True, Italic = False
text = font.render("Hi",1,(255,0,0))
clock = pygame.time.Clock()

mousePos = pygame.mouse.get_pos()
def redrawGameWindow():
    win.blit(text,(36,36))
    pygame.draw.line(win,(255,255,255),(mousePos[0],0),(mousePos[0],360))


while run:
    mousePos = pygame.mouse.get_pos()

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

    redrawGameWindow()
    pygame.display.update()

Не могли бы вы помочь мне решить эту проблему?

Ответы [ 2 ]

1 голос
/ 04 мая 2020

Добавьте win.fill((0, 0, 0)) к вашей функции redrawGameWindow(), чтобы перерисовать фон на экране:

def redrawGameWindow():
    win.fill((0, 0, 0))
    win.blit(text,(36,36))
    pygame.draw.line(win,(255,255,255),(mousePos[0],0),(mousePos[0],360))
0 голосов
/ 04 мая 2020

Проблема в том, что вам нужно перерисовать фон экрана. pygame.display.update() только добавляет на экран, не очищает и рисует. Так что вам нужно очистить его самостоятельно с помощью win.fill((0,0,0)). этот доктор aws весь экран черный, чтобы вы могли рисовать на нем снова

def redrawGameWindow():
    win.fill((0,0,0))
    win.blit(text,(36,36))
    pygame.draw.line(win,(255,255,255),(mousePos[0],0),(mousePos[0],360))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...