[关闭]
@websec007 2020-06-19T03:33:32.000000Z 字数 1556 阅读 756

Alien Invasion - 13.2 创建第一行外星人

2020.Python从入门到实践


13.3.2 创建第一行外星人

1. 创建一行外星人:3个主要步骤

===> gf.create_fleet(xxx, alients) 详情见《章节2:2个有关函数》

===> gf.update_screen(xxxx, aliens) 详情见《章节2:2个有关函数》


2.创建一行外星人: 2个有关函数

  1. # 创建外星人舰队
  2. def create_fleet(screen, game_settings, aliens):
  3. alien = Alien(screen)
  4. # 计算一行可用空间;
  5. alien_width = alien.rect.width
  6. available_space_x = game_settings.width - (2*alien.rect.width)
  7. # 计算一行可以存放外星人数量
  8. number_aliens_x = available_space_x / (2*alien.rect.width)
  9. # 创建第一行外星人
  10. for alien_number in range(int(number_aliens_x)):
  11. # 创建第一行外星人,并加入当前行
  12. alien = Alien(screen)
  13. # 外星人逐个排序放置
  14. alien.x = alien_width + 2*alien_width*alien_number
  15. alien.rect.x = alien.x
  16. aliens.add(alien)
  1. def update_screen(... aliens):
  2. ....
  3. aliens.draw(screen)

4. 创建一行外星人:重构create_fleet()

  1. def get_number_aliens_x(screen, game_settings,):
  2. """计算一行可以存放多少外星人"""
  3. # 创建一个外星人
  4. alien = Alien(screen)
  5. # 计算一行可以空间大小
  6. available_space_x = game_settings.width - 2*alien.rect.width
  7. # 计算一行可以存放多少外星人
  8. number_aliens_x = available_space_x / (2*alien.rect.width)
  9. return number_aliens_x
  10. def create_alien(screen, alien_number, aliens):
  11. # 创建一外星人对象,然后获取逐个间隔摆放alien的位置坐标
  12. alien = Alien(screen)
  13. alien.x = alien.rect.width + alien.rect.width * 2 * alien_number
  14. alien.rect.x = alien.x
  15. # 将创建的外星人对象逐个加入编组
  16. aliens.add(alien)
  17. def create_fleet(screen, game_settings, aliens):
  18. # 计算一行可以容纳多少外星人
  19. number_aliens_x = get_number_aliens_x(screen, game_settings)
  20. # 创建第一行外星人
  21. for alien_number in range(int(number_aliens_x)):
  22. # 逐个间隔摆放外星人
  23. create_alien(screen, alien_number, aliens)
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注