@websec007
2020-06-19T11:33:45.000000Z
字数 1634
阅读 953
2020.Python从入门到实践
def get_number_rows(game_settings, screen, ship):
"""计算屏幕可容纳多少行外星人"""
# 创建一个外星人
alien = Alien(game_settings, screen)
# 计算可容纳多少行外星人
available_space_y = (game_settings.height - (3 * alien.rect.height) - ship.rect.height)
number_rows = int(available_space_y / (2 * alien.rect.height))
return number_rows
def get_number_aliens_x(screen, game_settings, ):
"""计算一行可以存放多少外星人"""
# 创建一个外星人
alien = Alien(game_settings, screen)
# 计算一行可以空间大小
available_space_x = game_settings.width - 2 * alien.rect.width
# 计算一行可以存放多少外星人
number_aliens_x = int(available_space_x / (2 * alien.rect.width))
return number_aliens_x
def create_alien(game_settings, screen, alien_number, row_number, aliens):
# 创建一外星人对象,然后获取坐标(x,y)设定其位置属性
alien = Alien(game_settings, screen)
# x坐标:获取外星人实例对象的x坐标
alien.x = alien.rect.width + alien.rect.width * 2 * alien_number
alien.rect.x = alien.x
# y坐标:获取外星人实例对象的y坐标
alien.rect.y = alien.rect.height + 2 * alien.rect.height * row_number
# 将创建的外星人对象逐个加入编组
aliens.add(alien)
def create_fleet(screen, game_settings, ship, aliens):
# 计算主屏幕一行可以容纳多少外星人(width)
number_aliens_x = get_number_aliens_x(screen, game_settings)
# 计算主屏幕可以容纳多少行外星人(height)
number_rows = get_number_rows(game_settings, screen, ship)
# 创建外星人舰队(多行)
for row_number in range(number_rows):
# 创建第一行的 “number_alien_number” 外星人
for alien_number in range(number_aliens_x):
# 逐个间隔摆放外星人
create_alien(game_settings, screen, alien_number, row_number, aliens)