找回密码
 立即注册
首页 业界区 安全 pygame小游戏飞机大战_6敌人开火

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

郦珠雨 2025-8-12 14:05:59
引入敌人子弹:
算出敌人子弹出射点并在敌人出射点绘制子弹
  1. # 引入敌人子弹的类
  2. class EnemyBullet(object):
  3.     def __init__(self, screen, x, y):
  4.         # 定义坐标
  5.         self.x = x + 29 - 2
  6.         self.y = y + 43
  7.         # 引入子弹图片
  8.         self.image = pygame.image.load("./images/bullet2.png")
  9.         # 显示窗口
  10.         self.screen = screen
  11.         # 定义速度
  12.         self.speed = 4
  13.     # 定义显示子弹的方法
  14.     def display(self):
  15.         # 显示子弹到窗口
  16.         self.screen.blit(self.image, (self.x, self.y))
  17.     # 定义移动子弹的方法
  18.     def auto_move(self):
  19.         # 修改子弹y坐标使子弹飞起来
  20.         self.y += self.speed
复制代码
在敌人类中引入子弹存入列表中并进行循环实现发射:
 
[code]# 引入敌方飞机的类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
您需要登录后才可以回帖 登录 | 立即注册