[关闭]
@websec007 2020-06-09T23:13:40.000000Z 字数 1203 阅读 1018

Alien Invasion - 13.2 创建一个外星人

Python从入门到实践


13.2 创建外星人

1. 创建外星人过程

2. 源码部分

  1. # 创建Alien类
  2. #(1) 创建alien rect对象;
  3. #(2) 绘制外星人在主屏幕;
  4. import pygame
  5. from pygame.sprite import Sprite
  6. class Alien(Sprite):
  7. def __init__(self, screen):
  8. """(1) 创建alien rect对象;"""
  9. super().__init__()
  10. self.screen = screen
  11. # 加载外星人图像,获取外星人矩形对象
  12. self.image = pygame.image.load(r'E:\Game_Study\images\alien.bmp')
  13. self.rect = self.image.get_rect()
  14. # 初始化外星人位置
  15. self.rect.x = self.rect.width
  16. self.rect.y = self.rect.height
  17. def blitme(self):
  18. """(2) 绘制外星人在主屏幕;"""
  19. self.screen.blit(self.image, self.rect)
  1. ....
  2. # 2. screen surface
  3. ...
  4. # 创建飞船
  5. ship = Ship(screen, game_settings)
  6. # 创建子弹编组容器
  7. bullets = Group()
  8. # 创建外星人实例
  9. alien = Alien(screen)
  10. .
  11. .
  12. .
  13. # 3. Game loop
  14. while True:
  15. . # (1) process Input
  16. .....
  17. # (2) Update Game
  18. # 重构游戏“更新”与“画面绘制”
  19. gf.update_screen(screen, bg_color, ship, bullets, alien)
  20. # (3) render
  21. pygame.display.update()
  1. ...
  2. def update_screen(screen, bg_color, ship, bullets, alien):
  3. # Update Game
  4. screen.fill(bg_color)
  5. # 飞船移动更新
  6. ship.update()
  7. # 绘制飞船
  8. ship.blitme()
  9. # 重构后的调用:
  10. #(1)飞船的更新
  11. #(2)飞船的绘制
  12. update_bullets(bullets)
  13. # 绘制外星人
  14. alien.blitme()
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注