我目前正在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)
这些都是在主循环之外绘制的。我知道这些不会随着游戏的运行而更新,但它们仍然应该静态地放在屏幕上。正如之前在我朋友的机器上显示的那样。他使用了不同的图像,因为我没有把我用来创建精灵的图像发给他,但它们不会出现在我的屏幕上。我甚至更改了图像,但仍然没有显示任何内容。
EDIT:主循环。它所做的就是不断地画精灵。并且目前有一个退出事件。
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.
您需要在主循环中调用pygame.display.fip(),否则它将永远不会刷新屏幕。将主回路替换为:
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.