我目前在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.
答案 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.