1

プログラムの画面にイメージをブリットしましたが、うまくいきましたが、それを「アニメーション化」しようとすると、奇妙な結果が生じます。その位置を更新すると、別の画像などが生成されるようです...

コード入力:

screen=pygame.display.set_mode((640,360),0,32)
star=pygame.image.load("star.png").convert_alpha()

x = randint(80,700)
y = randint(-200,-200)

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

    x-=0.1
    y+=0.1
    screen.blit(star,(x,y))

    if y > 360:
        y = randint(-200,-200)
        x = randint(80,700)
        screen.fill((0,0,0))

    pygame.display.update()

結果:

http://imgur.com/i28oD5b

なぜこれが起こるのか、どうすれば修正できるのかについて、フィードバックをいただければ幸いです。

4

1 に答える 1

0

フレームごとに空白のキャンバスが得られるわけではありません。新しい星を描く前に、古い星を消去する必要があります。

pygame チュートリアルで、これを説明していることがわかります。

于 2013-10-07T18:35:14.347 に答える