郦珠雨 发表于 2025-8-12 14:05:59

pygame小游戏飞机大战_6敌人开火

引入敌人子弹:
算出敌人子弹出射点并在敌人出射点绘制子弹
# 引入敌人子弹的类
class EnemyBullet(object):
    def __init__(self, screen, x, y):
      # 定义坐标
      self.x = x + 29 - 2
      self.y = y + 43
      # 引入子弹图片
      self.image = pygame.image.load("./images/bullet2.png")
      # 显示窗口
      self.screen = screen
      # 定义速度
      self.speed = 4

    # 定义显示子弹的方法
    def display(self):
      # 显示子弹到窗口
      self.screen.blit(self.image, (self.x, self.y))

    # 定义移动子弹的方法
    def auto_move(self):
      # 修改子弹y坐标使子弹飞起来
      self.y += self.speed在敌人类中引入子弹存入列表中并进行循环实现发射:
 
# 引入敌方飞机的类class Enemy(object):    # 创建玩家的方法,引入screen模块    def __init__(self, screen):      # 引入图片创建敌人      self.enemy = pygame.image.load("./images/enemy1.png")# 51*43      # 设置速度变量      self.speed = 5      self.x = 0      self.y = 0      # 使screen变为飞机类的一个属性      self.screen = screen      # 定义装子弹的列表      self.bullets = []    def display(self):      # 绘制敌人      self.screen.blit(self.enemy, (self.x, self.y))      # 遍历所有子弹      for bullet in self.bullets:            # 引入让子弹飞起来的方法            bullet.auto_move()            # 显示子弹            bullet.display()    # 定义移动飞机的方法    def auto_move(self):      # 将direction改为全局变量      global direction      # 判断方向进行移动      if direction == "right":            self.x += self.speed      if direction == "left":            self.x -= self.speed      # 定义碰壁时调整移动方向      if self.x >= 480 - 51:            direction = "left"      if self.x = 480 - 51:            direction = "left"      if self.x = 480 - 51:            direction = "left"      if self.x
页: [1]
查看完整版本: pygame小游戏飞机大战_6敌人开火