功能函数更改

This commit is contained in:
206530314 2021-06-20 20:20:04 +08:00
parent f5ccc6a2c5
commit 25385588a5
1 changed files with 49 additions and 0 deletions

View File

@ -215,3 +215,52 @@ def update_bullets(ai_settings, screen, game_stats, scoreb, ship, aliens, bullet
check_bullet_alien_collisions(ai_settings, screen, game_stats, scoreb, ship, aliens, bullets)
def get_number_aliens_X(ai_settings, alien_width):
"""
计算每行可容纳多少个外星人
"""
availabble_space_x = ai_settings.screen_width - 2 * alien_width # 一行可可容纳的水平长度
number_aliens_x = int(availabble_space_x / (2 * alien_width)) # 一行可容纳多少个外星人
return number_aliens_x
def get_number_rows(ai_settings, alien_height, ship_height):
"""
计算屏幕可容纳多少行外星人
"""
availables_space_y = (ai_settings.screen_height-ship_height-
(3*alien_height))
number_rows = int(availables_space_y / (2 * alien_height))
return number_rows
def create_alien(ai_settings, screen, aliens, alien_number, row_number):
"""
创建一个外星人并将其放在当前行
"""
alien = Alien(ai_settings, screen)
alien_width = alien.rect.width
alien_height = alien.rect.height + 3 # 让外星人之间间隔大些
alien.x = alien_width + 2 * alien_width * alien_number # 获取新建外星人所移动的位置
alien.rect.x = alien.x # 新建外星人的位置
alien.rect.y = alien_height + 2 * alien_height * row_number # 新行的位置
aliens.add(alien)
def create_fleet(ai_settings, screen, ship, aliens):
"""
创建外星人群
"""
# 创建一个外星人并计算一行可容纳多少个外星人
# 外星人间距为外星人的宽度
alien = Alien(ai_settings, screen)
number_aliens_x = get_number_aliens_X(ai_settings, alien.rect.width) # 一行可容纳外星人的个数
number_rows = get_number_rows(ai_settings, alien.rect.height,
ship.rect.height) # 屏幕上可容纳外星人的行数
# 内外双循环创建外星人群
for row_number in range(number_rows): # 外循环创建外星人行数
for alien_number in range(number_aliens_x): # 内循环创建外星人
create_alien(ai_settings, screen, aliens, alien_number, row_number) # 调用创建外星人的函数