2017-03-18 66 views
1

因此,我之前的代碼糾正了我自己,但還有另一個問題。 「遊戲」運行速度爲60 FPS,但是當我想要使用背景而不是黑屏時,遊戲速度會降低到30 fps。有沒有辦法解決這個問題?Pygame的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() 

回答

0

將具有透明度的圖像弄髒很慢。如果你在加載它後調用.convert(),它會使它更快。這會將其轉換爲更快速的不透明格式。

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

+0

非常感謝!它現在大約是50-55 FPS,但現在有一些小的下降 –

+0

PyGame不是非常快,因爲它不使用GPU,因此屏幕大小會有一些限制。 –