gpt4 book ai didi

python - pygame表面不显示

转载 作者:太空宇宙 更新时间:2023-11-03 15:21:55 26 4
gpt4 key购买 nike

我一直在用 pygame 进行一些测试,但我坚持使用表面。我无法在其上绘制表面或其他东西。这是我的代码:

import pygame

pygame.init()
screen = pygame.display.set_mode((400, 300))
#surface = pygame.Surface((100, 100))
done = False
screen.fill((255, 255, 255))


while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True


#surface = pygame.Surface((50, 50))
surface = pygame.Surface((100, 100))
#surface.fill((255, 0, 0))
#surface.set_colorkey((255, 0, 0))
pygame.draw.circle(surface, (0,0,0), (25,25),25)
#pygame.draw.rect(screen, (0, 128, 255), pygame.Rect(30, 30, 60, 60))

pygame.display.flip()

因此,当我想在屏幕上绘制某些内容时,它会绘制它:

这有效:

pygame.draw.circle(screen, (0,0,0), (25,25),25)

但这不是:

pygame.draw.circle(surface, (0,0,0), (25,25),25) 

我读过一些文档,但似乎调用表面并将背景设置为白色就足够了,因为它默认将其绘制为黑色。我真的不知道我做错了什么。

我希望有足够的信息。

干杯。

最佳答案

Pygame 有不同类型的表面。除了普通表面之外,还有显示器。显示器是一种表面,但表面不是一种显示器。它们之间的区别在于,显示内容显示在屏幕上,而普通表面则不然。

Pygame 表面是使用 pygame.Surface 创建的,而显示是使用 pygame.display.set_mode 创建的。在 Pygame 中,您一次只能有一个显示器,但您可以拥有您想要的任意数量的表面。

假设 screen 是您的显示器,surface 是您的另一个表面,以下是在屏幕上显示表面的方式:

screen.blit(surface, [x,y])

xy 是它们在显示屏上显示位置的坐标。

在您的程序中,您从未将表面传输到显示器上,因此它永远不会显示。只需这样做,程序就会正常运行,除非您的代码还存在其他问题。

如果这不能解决您的问题,请在评论中通知我,我会尽力提供帮助。

引用https://www.pygame.org/docs/ref/display.htmlhttps://www.pygame.org/docs/ref/surface.html .

关于python - pygame表面不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43463127/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com