Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何修复pygame中绘制多个曲面时的延迟_Python_Python 3.x_Pygame_Pygame Surface - Fatal编程技术网

Python 如何修复pygame中绘制多个曲面时的延迟

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

在我的游戏中,我想要的是一个围绕玩家的圆圈,所有东西都是可见的,但在这个圆圈之外,很难看到东西。基本上是一个手电筒光环和一切以外的是黑暗和难以看到。我花了一段时间让它工作,但现在我做的游戏运行速度约为20FPS,明显滞后,而正常情况下运行速度为60FPS。有没有关于如何保持相同的想法,但使游戏运行得更好的想法

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()