Pygame Sprites不会显示

时间:2013-12-23 18:09:52

标签: python pygame sprite pong

我目前在pygame中制作Pong。我这样做是通过从我已经制作的图像创建精灵。我遇到了一个问题,但是我的精灵不会出现在我的屏幕上。我把脚本寄给了一个在他的机器上运行它的朋友,并用他自己的图像代替,它运行良好。有没有人知道什么可能导致精灵现在显示在我的机器上?

创建课程:

class Paddle(pygame.sprite.Sprite):
img = "paddle.jpg"

def __init__(self):
    pygame.sprite.Sprite.__init__(self)
    self.image = pygame.image.load(self.img).convert()
    self.rect  = self.image.get_rect()

将其绘制到屏幕上(已添加到名单中):

player1.place(10,10)
player2.place(50,50)
paddleList.draw(screen)

这些是在主循环之外绘制的。据我所知,这些不会更新或游戏运行时的任何内容,但它们仍应静态放置在屏幕上。正如他们在朋友机器上展示的那样。他使用了不同的图像,因为我没有向他发送我用来制作精灵的图像,但它们不会出现在我的屏幕上。我甚至改变了图像,但仍然没有显示。

编辑:主循环。所有这一切都是继续绘制精灵。并且现在有一个退出事件。

while True:
paddleList.draw(screen)
ballList.draw(screen)
for event in pygame.event.get():
    if event.type == pygame.QUIT:
        pygame.quit()
        sys.exit() #ensures will quit on all systems. 

1 个答案:

答案 0 :(得分:0)

您需要在主循环中调用pygame.display.flip(),否则它将永远不会刷新屏幕。用这个替换主循环:

while True:
    paddleList.draw(screen)
    ballList.draw(screen)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit() #ensures will quit on all systems.