1. Add Q key to end the game function
Add: \game_functions.py-def check_keydown_events(event, fcw_settings, screen, chicken, bullets):
elif event.key == pygame.K_q:
sys.exit()
2. Create an enemy class
\images\enemy.png:
New: \enemy.py:
import pygame
from pygame.sprite import Sprite
class Enemy(Sprite):
"""敌鸡类"""
def __init__(self, fcw_settings, screen):
"""初始化敌鸡并设置其起始位置"""
super(Enemy, self).__init__()
self.screen = screen
self.fcw_settings = fcw_settings
# 加载敌鸡图像,并设置rect属性
self.image = pygame.image.load('images/enemy.png')
self.rect = self.image.get_rect()
# 每个敌鸡最初都在左上角附近
self.rect.x = self.rect.width
self.rect.y = self.rect.height
# 存储敌鸡准确位置
self.x = float(self.rect.x)
def blitme(self):
"""在指定位置绘制敌鸡"""
self.screen.blit(self.image, self.rect)
3. Create an instance of the enemy chicken
Update: \FatChickenWars.py:
...
from enemy import Enemy
...
# 创建一只肥鸡
chicken = Chicken(screen, fcw_settings)
# 创建子弹编组
bullets = Group()
# 创建一只敌鸡
enemy = Enemy(fcw_settings, screen)
...
# 更新画面
gf.update_screen(fcw_settings, screen, chicken, enemy, bullets)
...
4. Let the enemy chicken appear on the screen
Update: \game_functions.py-def update_screen():
def update_screen(fcw_settings, screen, chicken, enemy, bullets):
"""更新画面"""
# 绘制
screen.fill(fcw_settings.bg_color)
for bullet in bullets.sprites():
bullet.draw_bullet()
chicken.blitme()
enemy.blitme()
# 显示
pygame.display.flip()
Single-to-single-to-single-to-single, he cried when I did it. (Manually slide chicken)
2021.1.22