鼠标位置更新时滞后?

时间:2015-10-29 13:36:03

标签: python pygame

我一直在使用pygame创建一个非常基本的游戏,只是为了试验,我最近遇到了一些滞后。每当我添加此代码时:

if exitcode==0:
            pygame.font.init()
            font = pygame.font.Font(None, 24)
            text = font.render("Accuracy: "+str(accuracy)+"%", True, (255,0,0))
            textRect = text.get_rect()
            textRect.centerx = screen.get_rect().centerx
            textRect.centery = screen.get_rect().centery+24
            screen.blit(gameover, (0,0))
            screen.blit(text, textRect)
        else:
            pygame.font.init()
            font = pygame.font.Font(None, 24)
            text = font.render("Accuracy: "+str(accuracy)+"%", True, (0,255,0))
            textRect = text.get_rect()
            textRect.centerx = screen.get_rect().centerx
            textRect.centery = screen.get_rect().centery+24
            screen.blit(youwin, (0,0))
            screen.blit(text, textRect)

落后。我认为这可能是因为我的while循环,但事实并非如此。谁能告诉我延迟的来源?如果需要,我可以从我的游戏中发布其他代码。谢谢!

1 个答案:

答案 0 :(得分:0)

请勿在您的主循环中调用pygame.font.init()或创建新的Font对象,因为这会花费大量时间。

如果您已拨打pygame.init(),则根本不需要pygame.font.init()

对于您的Font对象:只需在主循环外部创建

另外,如果你做了很多字体渲染(调用font.render),你应该缓存生成的表面,因为字体渲染在pygame中也是一个相当昂贵的操作。