Pygame alphaをオフにする
-
07-07-2019 - |
質問
現在作業中のコンピューターゲームがあり、ユーザーに高速化のためにアルファ合成をオフにするオプションを提供したいと考えています。 Pygameには、どこでもチェックを行うのではなく、「アルファを使用しない」と言うグローバルオプションがあります。 set_alphaといいね!への呼び出しをすべて無視するようになりますか?
解決
pygameドキュメントを考えると、"いいえ、アルファを無効にするグローバルな方法はありません" 。
ただし、少なくとも2つの 'local' 方法があります:
-
まず、pygame.Surfaceをサブクラス化し、set_alphaの独自の実装を提供します これにより、グローバルアルファ設定が尊重されます。
-
2つ目は、使用中のピクセル形式に依存するため、少し注意が必要です。 pygameのドキュメントを引用するには:
Surface.set_alpha
表面全体のアルファ値を設定
[...]
この値は、ピクセル単位のサーフェスアルファとは異なります。 Surface形式に含まれている場合 ピクセル単位のアルファの場合、このアルファ値は無視されます。 Surfaceがピクセルごとに含まれる場合 アルファ、アルファ値を[なし]に設定すると、ピクセルごとの透明度が無効になります。
[...]
これにより、2組のテクスチャを提供できます。
- 不透明な(ピクセルごとの)アルファチャネルを持つもの。 set_alpha() へのすべての呼び出しを上書きします
- ピクセルごとのアルファを持たないため、 set_alpha() を尊重するもの
これが役立つことを願っています!
他のヒント
convert()-関数が画像のアルファを無効にすることを読みました。 私が知っていること:
convert()関数を使用すると、コンピューター上の画面の大きな画像の画像を16ビットの色深度で約150 FPSに高速化できます。
image = image.convert()#video system has to be initialed