Python 如何修复pygame中绘制多个曲面时的延迟
在我的游戏中,我想要的是一个围绕玩家的圆圈,所有东西都是可见的,但在这个圆圈之外,很难看到东西。基本上是一个手电筒光环和一切以外的是黑暗和难以看到。我花了一段时间让它工作,但现在我做的游戏运行速度约为20FPS,明显滞后,而正常情况下运行速度为60FPS。有没有关于如何保持相同的想法,但使游戏运行得更好的想法Python 如何修复pygame中绘制多个曲面时的延迟,python,python-3.x,pygame,pygame-surface,Python,Python 3.x,Pygame,Pygame Surface,在我的游戏中,我想要的是一个围绕玩家的圆圈,所有东西都是可见的,但在这个圆圈之外,很难看到东西。基本上是一个手电筒光环和一切以外的是黑暗和难以看到。我花了一段时间让它工作,但现在我做的游戏运行速度约为20FPS,明显滞后,而正常情况下运行速度为60FPS。有没有关于如何保持相同的想法,但使游戏运行得更好的想法 class手电筒: 定义初始化(自): self.flashlight\u surf=pygame.Surface((屏幕W,屏幕H)) self.flashlight\u surf2=p
class手电筒:
定义初始化(自):
self.flashlight\u surf=pygame.Surface((屏幕W,屏幕H))
self.flashlight\u surf2=pygame.Surface((屏幕W,屏幕H))
自动手电筒2.设置彩色键((1,1,1))
自我。手电筒\冲浪2。设置\阿尔法(200)
自身手电筒_半径=200
def手电筒_更新(自我):
自备手电筒2.填充(黑色)
pygame.draw.circle(self.flashlight_surf2,(1,1,1),(round(player.x)+
32,圆形(玩家y)+32),自身手电筒(半径)
显示.blit(自身手电筒_surf2,(0,0))
self.flashlight\u surf2.blit(self.flashlight\u surf,(0,0))
尝试更改
self.flashlight_surf2 = pygame.Surface((SCREEN_W, SCREEN_H))
到
转换曲面可以将光刻速度提高6倍
如果不起作用,请使用@MaxTriesToCode,即使它不起作用,也要确保始终这样做,因为它会将图像转换为正确的格式以进行blitting。它总是你想要的。什么是你自己。手电筒冲浪?看起来你只是用它来重置self.flashlight\u surf2,当你把它填满黑色时,你已经在这么做了。如果你移除它会发生什么?
self.flashlight_surf2 = pygame.Surface((SCREEN_W, SCREEN_H)).convert()