FPS 在 Pygame

FPS loose in Pygame

所以我以前的代码是我自己改的,但是还有一个问题。 'game' 在 60 FPS 时是 运行,但是当我想要 blit 背景而不是黑屏时,游戏会减慢到 30 fps。有没有办法解决这个问题?

import math
import pygame


class Planete:
    def __init__(self,rayon,periode,envergure,couleur):
        self.rayon = rayon
        self.periode = periode
        self.couleur = couleur
        self.envergure = envergure
        self.omega = (2*math.pi)/self.periode
        self.i = 0

    def tourner(self) :

        self.x = self.rayon*math.cos(self.omega*self.i)
        self.x2 = int(self.x)+500
        self.y = self.rayon*math.sin(self.omega*self.i)
        self.y2 = int(self.y)+200 
        self.i = self.i + 1

    def dessiner(self):
        pygame.draw.circle(gameDisplay,(self.couleur),((self.x2, self.y2)), self.envergure)

pygame.init()

Terre = Planete(149, 65.25,9,(25,0,250))
Mars = Planete(227, 86.98,8,(250,25,0))
#Wuut = Planete(195,206,7,(15,30,70))
#Jupiter = Planete(80,800,12,(150,50,15))


gameDisplay = pygame.display.set_mode((1280,720))
background = pygame.image.load("Ecran titre\principal\background.jpg")
menu = pygame.image.load("Ecran titre\principal\menu.png")
clock = pygame.time.Clock()

gameExit = False

while not gameExit :
    Terre.tourner()
    Mars.tourner()
    #Wuut.tourner()
    #Jupiter.tourner()

    for event in pygame.event.get():
        if (event.type == pygame.QUIT):
            gameExit = True

    gameDisplay.fill(0)

    #gameDisplay.blit(background,(0,0))

    Terre.dessiner()
    Mars.dessiner()
    #Wuut.dessiner()
    #Jupiter.dessiner()


    pygame.display.update()
    clock.tick(60)
    pygame.display.set_caption("fps: " + str(clock.get_fps()))

pygame.quit()
quit()

块传输具有透明度的图像非常慢。如果你在加载后调用 .convert() ,它会使它更快。这会将其转换为更快的不透明格式。

background = pygame.image.load("Ecran titre\principal\background.jpg").convert()