我是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()
每当我将这些功能导入到主游戏文件中并运行游戏时,它就会爬网,但是当代码直接在主游戏文件中运行时,它将正常运行。请提供导入时如何使其正常工作的建议。
编辑:我已经添加了主要的游戏文件,黑体字是我使用导入的代码所遇到的问题的地方。谢谢
答案 0 :(得分:0)
我已经能够解决它。函数gf.create_fleet不应处于while循环中,因为它将不断添加到同一位置的组中,而gf update_screen必须在同一点上全部绘制,这是一个严重的问题,这使我的编程抓取了>