当前位置: 首页 > 知识库问答 >
问题:

为什么pygame绘图只在窗口被拖离屏幕后才出现?

羊和光
2023-03-14

所以我正在尝试绘制一个棋盘(当前代码与棋盘无关,因为我正在尝试调试我的问题),并且我遇到了一个有趣的pyGames问题。

import pygame

pygame.init()
clock = pygame.time.Clock()

window_width = 400
window_height = 400
display_window = pygame.display.set_mode((window_width, window_height))

. . . 

def chess_game():
    playing = True
    while playing:
        clock.tick(30)
        # chess_board.draw()
        pygame.draw.rect(display_window, (255, 0, 0), (0, 0, window_width, window_height))
        pygame.draw.circle(display_window, (0, 255, 0), (100, 100), 20)
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                playing = False
                pygame.quit()
                break

chess_game()

如你所见,红色背景和圆圈就在那里,它们只是看不见,除非我把窗口拖出屏幕。

我不认为这是一个pygame的问题,因为我已经用类似的代码构建了一个实际功能的程序。如果这有所帮助的话,我正在使用PyCharm的Windows 10笔记本电脑上。

谢谢你!

共有1个答案

晁砚
2023-03-14

你需要打电话

pygame.display.update()

在每个画面上。拖动窗口的副作用是确保新“显示”的像素得到更新。

 类似资料:
  • 我是pygame的新手,我需要一些帮助,因为我的代码工作不正常。 好的,问题是:我希望屏幕在运行时变为白色,但它仍然是黑色的,但是当我按下退出按钮时,它会变为白色大约一秒钟,然后关闭。 当我放一张图片(像player.png)时,也会发生这种情况,它会在退出前出现大约一秒钟。我不知道我做错了什么, 请帮助修复代码并解释为什么会发生这种情况? 代码如下: 另外,我没有发现任何错误

  • 我一直在尝试使用pygame来显示游戏场景,但它似乎已经停止了对我的工作:在pygame关闭之前,它只在我创建的任何屏幕上显示一个灰色框,然后屏幕上应该显示的内容在退出之前短暂闪烁。例如,下面的最小代码显示灰色屏幕5秒钟,然后快速闪烁黑色并退出: 这似乎是屏幕显示的问题,而不是pygame本身的问题,因为我可以使用pg.image制作曲面并将其保存到图像文件中。save(),它们在那里看起来很好。

  • 这是一个程序,它获取一个链接并将其绘制在画布中...但是当它这样做时,窗口右侧的jcombobox停止工作,您必须选择它2次才能更改为所选的数字。我还看到,绘制和重新绘制方法非常不稳定,有时图像不会出现,或者如果它出现,当您最大化窗口时,它会再次消失。

  • 问题内容: 我正在Mac OS X上使用python和matplotlib。当我在许多不同的窗口上工作时,必须运行生成绘图的脚本,绘图窗口始终在活动窗口后面打开,并且非常沮丧,不得不在两个窗口之间切换以查看图像。为什么要确定绘图窗口的位置和/或将其弹出为前景窗口? 谢谢 问题答案: 完全相同的问题困扰着我。我终于找到了解决方案(在pylab模式下,带有qt4agg后端): 要么 问候,马库斯

  • 问题内容: 我正在打乒乓球。当两个分数中的任何一个达到10时,都应该在屏幕上显示一些文字,并说正确的玩家赢了或左边的玩家赢了。但是,在我的程序中,它不起作用。当必须显示左右玩家赢了的文字时,它不会显示。但这对其他一切都有效。这是代码: 我添加了一点评论,它是:“ ”。现在,当某人获得10分时,什么也没发生。等待几秒钟。这样一来,您可以在程序关闭之前阅读“左播放器获胜”或“右播放器获胜”。但是它根本

  • 问题内容: 如何将通过javascript 函数打开的弹出窗口居中显示在屏幕变量中心,以当前选定的屏幕分辨率为中心? 问题答案: 更新:它现在也可以在尚未超出屏幕宽度和高度的窗口上运行! 如果您使用双显示器,则窗口将水平居中,而不是垂直居中…使用此功能可以解决此问题。 用法示例: