@websec007
2020-06-19T03:33:45.000000Z
字数 1634
阅读 1240
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_numberalien.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)
