代码之家  ›  专栏  ›  技术社区  ›  Smashery

关闭Pygame Alpha

  •  1
  • Smashery  · 技术社区  · 15 年前

    我有一个正在开发的电脑游戏,我想给用户一个选项,为了提高速度而关闭alpha合成。Pygame不是到处检查,而是有一个全局选项来说“不要使用alpha”,这样它就可以忽略我所有设置alpha和like的呼叫吗?

    2 回复  |  直到 12 年前
        1
  •  1
  •   Heals JarMan    15 年前

    考虑到Pygame文件,我会说 不,没有全局方法禁用alpha .
    但是至少有两个 “本地” 如何做到这一点:

    • 首先是对pygame.surface进行子类化,并提供自己的set-alpha实现 这反过来又可以满足你的全局alpha设置。

    • 第二个问题比较棘手,因为它取决于使用的像素格式。 引用Pygame文档:

    表面.设置α
    设置整个曲面的alpha值
    […]
    该值与每个像素的表面alpha不同。如果曲面格式包含 每像素alphas,则忽略该alpha值。如果表面包含每像素 alphas,将alpha值设置为none将禁用每像素透明度。
    […]

    通过这个,您可以提供两组纹理:

    • 一个具有不透明(每像素)alpha通道的通道,它将覆盖您对 StIILα()
    • 一个没有每个像素的alpha,因此将尊重您的 StIILα()

    希望这会有所帮助!

        2
  •  0
  •   nmin    12 年前

    我已经读到convert()-函数禁用图像的alpha。 我所知道的是:

    使用convert()-函数可以将我电脑上大屏幕图像的分块传输速度提高到150 fps左右,颜色深度为16位。

    image = image.convert()#video system has to be initialed