Python pygame continuos图像加载FPS

时间:2012-11-30 10:43:55

标签: image performance pygame

在linux机器上使用pygame,不断加载新图像并显示它们会减慢程序的速度。

输入图像(400x300)采用PPM格式,以保持文件大小不变(360K) - 不影响IO并避免任何减压延迟。

以每秒50帧的速度开始,然后在大约2分钟后以每秒25帧的速度开始。

import pygame    
pygame.init()    
clock = pygame.time.Clock()
screen = pygame.display.set_mode((800, 600),pygame.FULLSCREEN)   
frame=1

while 1:

    image = pygame.image.load(str(frame)+".ppm")    

    screen.blit(image,(0,0))
    pygame.display.flip()

    clock.tick(240)

    frame=frame+1
    if(frame%10==0):
        print(clock.get_fps())

可以采取哪些措施来保持帧速率更加一致?

很可能它与需要进行垃圾收集的图像的旧引用有关。也许不是。

是否有连续加载图像而不创建新对象并触发垃圾收集器或任何减慢系统速度的东西?

2 个答案:

答案 0 :(得分:1)

经过数周的思考,我想我终于找到了你的问题所在。出于某种原因,计算机必须记住image的旧值。在blits的行之后,把

del image

我不完全确定,但它可能有用。

答案 1 :(得分:0)

import pygame    
pygame.init()    
clock = pygame.time.Clock()
screen = pygame.display.set_mode((800, 600),pygame.FULLSCREEN)   
frame=1

global image
image = pygame.image.load(str(frame)+".ppm")
#this image can be used again and again
#you can also give ////del image//// but it will load from the first so it takes time but using again and again doesn't do so
while 1:
     screen.blit(image,(0,0))
     pygame.display.flip()

     clock.tick(240)

     frame=frame+1
     if(frame%10==0):
        print(clock.get_fps()):