2017-03-18 4 views
1

그래서 이전에 수정 한 코드가 있지만 문제가 있습니다. '게임'은 60FPS로 실행되지만 검은 화면 대신 배경을 블 리치하려면 게임이 30fps로 느려집니다. 해결 방법이 있습니까?파이 게임에서 느슨한 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()를 호출하면 더 빠르게 blit됩니다. 이렇게하면 더 빠르게 불투명 한 형식으로 변환됩니다.

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

+0

감사합니다. 그것은 약 50 - 55 FPS가되었지만, 지금은 약간의 드랍스가 있습니다. –

+0

파이 게임은 GPU를 사용하지 않기 때문에 그리 크지 않습니다. 따라서 화면 크기에 제한이 있습니다. –