Python Fat Chicken Battle Development Record (11): the emergence of the enemy chicken

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:
Insert picture description here
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()

Excellent results
Single-to-single-to-single-to-single, he cried when I did it. (Manually slide chicken)

2021.1.22

Guess you like

Origin blog.csdn.net/k1095118808/article/details/112992541