python - 我该如何阻止它消失?

标签 python python-3.x pygame

我正在尝试在这里编写一个 pygame 代码,但它没有按照我想要的方式工作,我想修复屏幕上的这个圆圈,你们能帮我吗?

while True:
    clock.tick(60)

    window.blit(bg, (0,0))

    # circulo #

    for event in pg.event.get():
        if event.type == pg.KEYDOWN:
            if event.key == pg.K_q:
                clock.tick(1)
                pg.draw.circle(window, (5,5,5), [120, 120], 60, 1)
                continue

最佳答案

问题是您(可能)使用 window.blit(bg, (0,0)) 清除屏幕每一帧

然后,如果用户按 q,则仅针对该帧绘制一个圆圈。再过几毫秒(可能小于 1 毫秒)后,背景将重新绘制。因此,根据您的系统,人们可能永远不会注意到正在绘制的圆圈。

解决此问题的一种方法是设置一个 bool “标志”,以便重新绘制圆圈,直到标志再次变回原样。

draw_circle = False   # Should the circle be drawn?

while True:
    clock.tick(60)

    # re-draw the scene
    window.blit(bg, (0,0))

    # circulo #
    if draw_circle:
        pg.draw.circle(window, (5,5,5), [120, 120], 60, 1)

    for event in pg.event.get():
        if event.type == pg.KEYDOWN:
            if event.key == pg.K_q:
                draw_circle = not draw_circle  # toggle circle on/off

关于python - 我该如何阻止它消失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63459630/

相关文章:

python - '任何'不会引发错误?

python - pygame 不显示我的图像

python - Pygame - 创建 "Enemy"类,然后将其导入游戏

python - 如何在不将整个文件读入内存的情况下在 python 3 中从 Internet 写入大型二进制文件?

python - Deeptools 找不到存在的文件

python - 如何以滚动方式快速将 pandas 数据框中的多行转换为 1 行?

python-3.x - python pandas条件累积总和

python - 如何不在 pymunk.Space.debug_draw() 中渲染球方向?

python 字典到 csv,其中每个键位于单独的行中,值位于单独的列中

python - pygame 将图像的透明部分传输为白色