私の知る限り、あなたが見ているスケーリングは、回転操作がどのように機能するかの一種のアーティファクトです。長方形が回転すると、バウンディングボックスは必然的に元の長方形よりも大きくなります。たとえば、下の画像の青い長方形を参照してください。Rは長方形の半径です...したがって、回転すると、長方形は2番目の画像の赤い円で覆われた領域を一掃します。回転の境界ボックスは、灰色の長方形になりました。pygameは、赤い領域と灰色の領域の両方を埋める必要があります。pygameはパディング領域を塗りつぶすためにどの色を使用しますか?
pygame.transform.rotateのドキュメントによると...
「90度ずつ回転しない限り、画像は新しいサイズを保持するために大きくパディングされます。画像にピクセルアルファがある場合、パディングされた領域は透明になります。それ以外の場合、pygameはSurfaceカラーキーまたは左上のピクセル値に一致する色を選択します。」
したがって、解決策は、画像のカラーキーまたはアルファ値を明示的に設定することです(この場合、saved_imageサーフェスを作成するとき)。次に、saved_imageを回転すると、新しく作成された画像のパディング領域が適切な色。
試してみて、それが機能するかどうかを確認してください。
