【问题标题】:Pygame: display doesn't updatePygame:显示不更新
【发布时间】:2021-11-15 11:40:05
【问题描述】:

我遇到了一个问题,即显示器由于某种原因没有更新。我已经确认 x 上升了,但由于某种原因显示屏没有显示。 代码:

import pygame


SIZE = (500, 500)
CENTER = (SIZE[0] / 2, SIZE[1] / 2)
FPS = 60
COLORS = {
    "white": (255, 255, 255),
    "red": (255, 0, 0),
    "green": (0, 255, 0),
    "blue": (0, 0, 255),
    "black": (0, 0, 0)
}
WIN = pygame.display.set_mode(SIZE)

pygame.display.set_caption("what da dog doing?")


def main():
    clock = pygame.time.Clock()
    run = True
    player = pygame.draw.rect(WIN, COLORS.get(
        "white"), (CENTER[0] - 400 / 2, CENTER[1] - 70 / 2, 400, 70),  border_radius=10)

    while run:
        clock.tick(FPS)
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False
        player.x += 1
        pygame.display.update()

    pygame.quit()


if __name__ == "__main__":
    main()

感谢任何帮助。

【问题讨论】:

    标签: python pygame frame-rate


    【解决方案1】:

    您需要在主循环中放置应该更新的内容,还需要用一些颜色填充屏幕(或对足够大以覆盖您需要的区域的图像进行 blit)以绘制之前的内容画的东西

    def main():
        clock = pygame.time.Clock()
        run = True
        player = pygame.draw.rect(WIN, COLORS.get(
            "white"), (CENTER[0] - 400 / 2, CENTER[1] - 70 / 2, 400, 70),  border_radius=10)
    
        while run:
            clock.tick(FPS)
    
            WIN.fill((0, 0, 0))
    
            pygame.draw.rect(WIN, COLORS.get('white'), player, border_radius=10)
            player.x += 1
    
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    run = False
    
            pygame.display.update()
    
        pygame.quit()
    

    【讨论】:

    • 它可以工作,但边框半径没有改变。
    • player = pygame.draw.rect(WIN, COLORS.get("white"), (CENTER[0] - 400 / 2, CENTER[1] - 70 / 2, 400, 70) , border_radius=10)
    • @invisibleboi 对,也必须在循环中设置,更新答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-09
    相关资源
    最近更新 更多