2016-08-17 23 views
0

画像上でマウスを動かして画像を拡大しようとしましたが、画像から遠ざかると元のサイズになりました。たとえば :画像を拡大縮小した後に画像をリセットする

if ImageRect.collidepoint(mouseX,mouseY): 
    Image = pygame.transform.scale(Image, (100,100)) 
else: 
    Image = pygame.transform.scale(Image, (64,64)) #actual size of Image 

しかし、それの上にマウスを10回移動した後、画像が奇妙になっています。 これを修正するにはどうすればよいですか?

This is how it looks

答えて

0

変換の一部は破壊的と考えられています。これらのことは、実行されるたびにピクセルデータが失われることを意味します( )。この の一般的な例は、サイズ変更と回転です。この理由から、 は、画像を変換し続けるよりも元のサーフェスを再変換する方が良いです。 たとえば、 の跳ね返りをアニメーション化して伸縮させるとします。 のサイズ変更を前の画像に徐々に適用すると、詳細は失われますが、 は常に元の画像で始まり、 。)

pygame.transform documentationから直接取得

ワークアラウンド

元の画像を毎回変更しないでください。代わりに、衝突するたびに古い画像の上に新しい画像を表示するだけです(古い画像は表示されないため、大きな画像です)。また、古い画像を隠すこともできます。

例:

if ImageRect.collidepoint(mouseX,mouseY): 
    Image2 = pygame.transform.scale(Image, (100,100)) 
関連する問題