引入敌人子弹:
算出敌人子弹出射点并在敌人出射点绘制子弹- # 引入敌人子弹的类
- 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
复制代码 在敌人类中引入子弹存入列表中并进行循环实现发射:
[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 |