Python 如何判断convert()/convert_alpha()是否已在pygame.Surface上运行?
这个标题说明了一切,真的。我正在编写处理来自多个源的Python 如何判断convert()/convert_alpha()是否已在pygame.Surface上运行?,python,pygame,pygame-surface,Python,Pygame,Pygame Surface,这个标题说明了一切,真的。我正在编写处理来自多个源的pygame.Surface对象的函数。在其他操作中,这些函数将确保它们返回的曲面对象至少被convert()ed一次(或者,根据用户偏好,convert_alpha()ed),这是优化它们以在当前显示模式下闪烁所需的。但是我不想不必要地运行convert()或convert\u alpha()方法,因为它们会创建曲面的副本,因此会占用时间和内存。我如何判断是否需要这样做?我已经查看了S.get_flags()在S=S.convert_alph
pygame.Surface
对象的函数。在其他操作中,这些函数将确保它们返回的曲面
对象至少被convert()
ed一次(或者,根据用户偏好,convert_alpha()
ed),这是优化它们以在当前显示模式下闪烁所需的。但是我不想不必要地运行convert()
或convert\u alpha()
方法,因为它们会创建曲面的副本,因此会占用时间和内存。我如何判断是否需要这样做?我已经查看了S.get_flags()
在S=S.convert_alpha()
之前和之后的输出,但它似乎没有改变。S.get_alpha()
的标量值确实发生了变化(从255变为0),但我不认为这是有意义的或可靠的(并且它不能解决在不需要alpha混合的情况下是否必须.convert()
的问题)。我不相信现有的API提供了这样做的方法。我认为其预期用途是转换所有曲面(为什么不转换呢?),因此您无需担心
也许可以子类化
pygame.Surface
并重写convert方法,以您希望的方式设置标志。也许可以使用Surface和额外信息创建自己的类。