功能函数更改
This commit is contained in:
parent
f5ccc6a2c5
commit
25385588a5
|
@ -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) # 调用创建外星人的函数
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue