私は Pygame を使用して Python でゲームを作成しています。プレーヤーのスプライトがマップの周りに点在する木に触れないようにしています。私のプレーヤーのスプライトには透明度があり (もちろん)、Pygame Mask をpygame.mask.from_surface(self.getNextFrame())
でロードすると、実際の色のパーツのみがロードされます。
私の質問は、元の画像からの透明度でマスクをロードするためにpygameを取得する方法を知っている人はいますか?
はい、2番目の引数を使用します。
mask = pygame.mask.from_surface(self.getNextFrame(), 0)
任意のピクセルに設定すると0
、不透明に見えます。ドキュメントを参照してください。
この結果は、単にサーフェスのサイズの長方形であることに注意してください。したがって、実際にはこれを使用する方がパフォーマンスが高い可能性があります。
mask = pygame.mask.Mask(self.getNextFrame().get_size())
mask.fill()