pygame 表面没有出现
pygame surface doesn't show up
我一直在用 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])
x
和y
是它们在显示器上显示位置的坐标。
在你的程序中,你从来没有将表面 blit 到显示器上,所以它永远不会显示。只需这样做,程序就会运行 除非您的代码还有其他问题。
如果这不能解决您的问题,请在评论中通知我,我会尽力提供帮助。
参考https://www.pygame.org/docs/ref/display.html and https://www.pygame.org/docs/ref/surface.html.
screen.blit(surface, (x, y))
显示表面
我一直在用 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])
x
和y
是它们在显示器上显示位置的坐标。
在你的程序中,你从来没有将表面 blit 到显示器上,所以它永远不会显示。只需这样做,程序就会运行 除非您的代码还有其他问题。
如果这不能解决您的问题,请在评论中通知我,我会尽力提供帮助。
参考https://www.pygame.org/docs/ref/display.html and https://www.pygame.org/docs/ref/surface.html.
screen.blit(surface, (x, y))
显示表面