1

标题说明了一切,真的。我正在编写处理pygame.Surface来自多个来源的对象的函数。在其他操作中,这些函数将确保Surface它们返回的对象convert()至少被 ed 一次(或者,根据用户偏好,convert_alpha()ed),这是优化它们以在当前显示模式下进行 blitting 所必需的。但我不想不必要地运行convert()orconvert_alpha()方法,因为它们会创建表面的副本,因此会占用时间和内存。我如何判断我是否需要这样做?我查看了S.get_flags()之前和之后的输出,S = S.convert_alpha()但它似乎没有改变。的标量值S.get_alpha()确实发生了变化(从 255 变为 0),但我不认为这是有意义的或可靠的(并且它不能解决在.convert()不需要 alpha 混合的情况下是否必须这样做的问题)。

4

1 回答 1

1

我不相信现有的 API 提供了一种方法来做到这一点。我认为预期用途是转换所有表面(你为什么不呢?)所以你永远不必担心它。

也许可以继承pygame.Surface并覆盖转换方法以按照您希望的方式设置标志。

于 2015-12-02T01:08:56.030 回答