敌人优化后:- # 引入敌方飞机的类
- class Enemy(pygame.sprite.Sprite):
- def __init__(self, screen):
- # 调用继承精灵初始化方法
- pygame.sprite.Sprite.__init__(self)
- # 引入图片创建敌人
- self.enemy = pygame.image.load("./images/enemy1.png")
- self.image = self.enemy
- # 设置速度变量
- self.speed = 10 # 降低速度使游戏可玩
- # 根据图片进行获取矩形对象
- self.rect = self.image.get_rect()
- self.rect.topleft = [0, 0]
- self.x = 0
- self.y = 0
- # 使screen变为飞机类的一个属性
- self.screen = screen
- # 定义装子弹的精灵组
- self.bullets = pygame.sprite.Group()
- def display(self):
- self.screen.blit(self.enemy, (self.rect.left, self.rect.top))
- # 改为使用精灵组的方法绘制子弹
- self.bullets.update() # 更新子弹位置
- self.bullets.draw(self.screen) # 绘制子弹
- # 定义移动飞机的方法
- def auto_move(self):
- # 将direction改为全局变量
- global direction
- # 判断方向进行移动
- if direction == "right":
- self.rect.right += self.speed
- if direction == "left":
- self.rect.right -= self.speed
- # 定义碰壁时调整移动方向
- if self.rect.right >= 480 - 51:
- direction = "left"
- if self.rect.right <= 0:
- direction = "right"
- def update(self):
- self.auto_fire()
- self.auto_move()
- self.display()
- # 定义自动开火的方法
- def auto_fire(self):
- # 使用随机数函数进行随机抽取一个1到10的一个随机数
- random_number = random.randint(1, 10)
- # 当随机数为8时创建子弹
- if random_number == 8:
- # 创建单个子弹
- bullet = EnemyBullet(self.screen,self.rect.left, self.rect.top)
- # 将子弹放入列表中
- self.bullets.add(bullet)
复制代码 完整代码:复制代码 此时优化后的程序可以正常运行
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |