pygame アプリケーション ループが適切に動作しないのはなぜですか?
提供されたコードを調べたところ、ループの配置が主な問題であるようです。 。メイン アプリケーションでは、更新された位置に特定のエンティティのみを再描画しながら、画面の一部を消去してエンティティごとに再描画しようとしています。この方法は必須ではなく、視覚的な不一致が生じる可能性があります。
一般に、ベスト プラクティスは次のとおりです。
この改訂されたコード スニペットでは、上記のようにループを再配置しました。
while 1: # handle events for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() # update objects (depends on input events and frames) keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: objects[0].move_left() if keys[pygame.K_RIGHT]: objects[0].move_right() if keys[pygame.K_UP]: objects[0].move_up() if keys[pygame.K_DOWN]: objects[0].move_down() for num in range(num_objects - 1): objects[num + 1].rand_move() # draw background screen.blit(background, (0, 0)) # draw scene for o in objects: screen.blit(o.image, o.pos) # update dispaly pygame.display.update() pygame.time.delay(100)
このループは、効果的に画面をクリアし、すべてのエンティティを描画し、更新するようになりました。各フレームを表示します。
さらに詳しく説明するには、この最小限の例を参照してください:
[例リンク]
以上がPygame アプリケーション ループが正しく更新されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。