我的pygame代码运行非常慢,我如何修复它?

2024-09-28 21:14:26 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我试着在pygame中制作俄罗斯方块,它运行得非常慢。我隔离了绘制所有内容的函数,即使它运行得非常慢,我如何修复它?(我所说的运行是指我得到一个黑屏,在几分钟内从底部缓慢加载所需的图像。)

还有一些未使用的变量,因为我懒得把它们注释掉,但我不认为几个变量会有很大的区别

import random
import time
import pygame
pygame.init()
win=pygame.display.set_mode((420, 840))
clock= pygame.time.Clock()

score= 0
level= 0
lines= 0
field= [[1]*10 for _ in range(22)]


run= True
play= True
setState= False
t= 48
frameCounter= 0
font= pygame.font.SysFont('arial', 30)

def drawWin():
        tempY= 40
        for y in range(2 ,22):
            tempX= 10
            for x in field[y]:
                if(x==1):
                    win.fill((255, 255, 255), (tempX, tempY, 40, 40))
                    pygame.draw.rect(win, (0, 0, 255), (tempX, tempY, 40, 40), 5)
                tempX+=40
            tempY+=40
        pygame.draw.rect(win, (255, 255, 255), (10, 40, 400, 800), 2)
        text= font.render('Score: '+ str(score)+ '\nLevel: '+ str(level), 1, (255, 255, 255))

while True:
    drawWin()
    for event in pygame.event.get():
        if event.type== pygame.QUIT:
            break
    time.sleep(1)
    clock.tick(t)

pygame.quit()


Tags: inimporteventtruefieldfortimelevel
2条回答

简单的修复,忘记了pygame的更新显示命令

尝试将pygame.display.update()添加到while循环的末尾

我以前在运行Pygame时遇到过类似的问题:))

相关问题 更多 >