首页 文章

pygame.display.flip()似乎无法正常工作?

提问于
浏览
1

我一直在研究一个项目,当我测试它时,这发生了 . 经过一些测试后,我很快意识到代码中的pygame显示翻转部分出了问题 . 我真的不明白这里有什么不对,所以我希望你们其中一个人这样做 .

import pygame
pygame.init()
screen = pygame.display.set_mode((200, 200))
img = pygame.image.load("test.png")
while 1:
    screen.fill((0, 0, 0))
    screen.blit(img, (0, 0))
    pygame.display.flip()
    pygame.time.delay(10)

现在,结果是一个空白的白色屏幕,200到200.我希望有人看到这里有什么问题 . 另外,我的png在这里没关系,因为我只用填充(黑色)得到了相同的结果,所以我希望有人知道 .

1 回答

  • 2

    这里有几件事:

    1)我建议使用pygame时钟而不是time.delay . 使用时钟设置每秒帧数来运行代码,time.delay就在这里,等待延迟 .

    2)Pygame是事件驱动的,所以你需要检查事件,即使你还没有 . 否则它被解释为无限循环并锁定 . 有关更详细的解释:click here

    3)我会提供一个退出游戏循环的方法,其中一个标志可以设置为false,这样程序就可以自然地终止

    import pygame
    
    pygame.init()
    screen = pygame.display.set_mode((200, 200))
    img = pygame.image.load("test.png")
    clock = pygame.time.Clock()
    game_running = True
    while game_running:
        # evaluate the pygame event
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                game_running = False  # or anything else to quit the main loop
    
        screen.fill((0, 0, 0))
        screen.blit(img, (0, 0))
        pygame.display.flip()
        clock.tick(60)
    

相关问题