1

作業中のコンピューターゲームがあり、速度を上げるためにアルファ合成をオフにするオプションをユーザーに提供したいと考えています。Pygameには、どこでもチェックを行うのではなく、set_alphaなどへのすべての呼び出しを無視するように「alphaを使用しないでください」と言うグローバルオプションがありますか?

4

2 に答える 2

1

pygameのドキュメントを考えると、 「いいえ、アルファを無効にするグローバルな方法はありません」と言います。
ただし、これを行うには少なくとも2つの「ローカル」方法があります。

  • まず、pygame.Surfaceをサブクラス化し、set_alphaの独自の実装を提供します。これにより、グローバルアルファ設定を尊重できます。

  • 2つ目は、使用しているピクセル形式に依存するため、少し注意が必要です。pygameのドキュメントを引用するには:

Surface.set_alpha
は、サーフェス全体のアルファ値を設定します
[...]
この値は、ピクセルごとのサーフェスアルファとは異なります。Surface形式にピクセルごとのアルファが含まれている場合、このアルファ値は無視されます。Surfaceにピクセルごとのアルファが含まれている場合、アルファ値をNoneに設定すると、ピクセルごとの透明度が無効になります。
[...]

これにより、2セットのテクスチャを提供できます。

  • set_alpha()へのすべての呼び出しを上書きする不透明な(ピクセルごとの)アルファチャネルを持つもの
  • ピクセルごとのアルファがないため、set_alpha()を尊重するもの

これがお役に立てば幸いです。

于 2009-09-15T20:29:25.547 に答える
0

convert()関数が画像のアルファを無効にすることを読みました。私が知っていることは:

convert()関数を使用すると、コンピューター上の画面の大きな画像の画像を、色深度16ビットで約150FPSに高速化できます。

image = image.convert()#video system has to be initialed
于 2013-03-22T10:15:10.157 に答える