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()
所以我以前的代码是我自己改的,但是还有一个问题。 '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()