Python pygame曲面不';我没有出现

Python pygame曲面不';我没有出现,python,pygame,surface,Python,Pygame,Surface,我一直在用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.ev

我一直在用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_模式创建的。在Pygame中,一次只能有一个显示器,但可以有任意数量的曲面

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

screen.blit(surface, [x,y])
x
y
是它们在显示器上显示位置的坐标

在您的程序中,您从未将曲面blit到显示器上,因此它从未显示。只要这样做,程序就会工作,除非代码中还有其他问题

如果这不能解决你的问题,请在评论中通知我,我会看看我能做些什么来帮助你

参考和


要显示曲面

您需要将曲面
blit显示到屏幕上。感谢各位,非常感谢这实际上解决了问题,我错过了那一行。非常感谢。除了数据类型上的细微差异外,这与@Douglas三年前接受的答案基本相同。没有必要重复回答,除非你能够添加更多的细节或解释。稍后,您将能够更新现有答案,以验证其正确性。
screen.blit(surface, (x, y))