从另一个文件导入时,Python Pygame代码运行非常慢

时间:2019-12-26 11:12:43

标签: python pygame

我是python的新手,所以如果答案很明显,请原谅我。

def create_fleet(ai_settings, screen, aliens):
    """Create the horizontal Alien fleet"""
    alien = Alien(ai_settings, screen)
    alien_width = alien.rect.width
    available_x = ai_settings.screen_width - alien_width
    num_aliens_x = int(available_x / ( 2 * alien_width))

    for alien_number_x in range(num_aliens_x):
        alien = Alien(ai_settings, screen)
        # define the starting point of each alien
        alien.x = alien_width + 2 * alien_width * alien_number_x
        alien.rect.x = alien.x
        aliens.add(alien)

def update_screen(ai_settings, screen, ship, bullets, aliens):
    screen.fill(ai_settings.bg_colour)
    ship.blitme()
    for bullet in bullets.sprites():
        bullet.draw_bullet()
    aliens.draw(screen)
    pygame.display.flip()

这是主要的游戏文件:

def run_game():

ai_settings = Settings()


pygame.init()
screen = pygame.display.set_mode((ai_settings.screen_width, ai_settings.screen_height))
pygame.display.set_caption("ALIEN INVASION")
bullets = Group()
aliens = Group()



ship = Ship(screen, ai_settings)
while True:
    gf.check_event(ai_settings, screen, ship, bullets)
    ship.update()
    bullets.update()
    gf.remove_old_bullets(bullets) 

    **gf.create_fleet(ai_settings, screen, aliens)
    gf.update_screen(ai_settings, screen, ship, bullets, aliens)**

run_game()

每当我将这些功能导入到主游戏文件中并运行游戏时,它就会爬网,但是当代码直接在主游戏文件中运行时,它将正常运行。请提供导入时如何使其正常工作的建议。

编辑:我已经添加了主要的游戏文件,黑体字是我使用导入的代码所遇到的问题的地方。谢谢

1 个答案:

答案 0 :(得分:0)

我已经能够解决它。函数gf.create_fleet不应处于while循环中,因为它将不断添加到同一位置的组中,而gf update_screen必须在同一点上全部绘制,这是一个严重的问题,这使我的编程抓取了