加入收藏 | 设为首页 | 会员中心 | 我要投稿 十堰站长网 (https://www.0719zz.com/)- 混合云存储、网络、视频终端、云计算、媒体处理!
当前位置: 首页 > 编程开发 > Python > 正文

python--飞机大战

发布时间:2023-02-16 14:21:38 所属栏目:Python 来源:互联网
导读:实现功能: 1:飞机的移动,发射子弹,手雷,生命值,生命条 2:敌飞机有3种形态(小,中,大)不同的飞机大小不一样,生命值不一样,爆炸动画也不一样 3:背景音乐,子弹击中敌机会发生碰撞的爆炸动画和音效 4:随机产生补给(双射子弹和全屏炸弹) 5:难度

  
              # 碰撞检测 检测子弹是否击中敌机
              for b in bullets:
                  if b.active:
                      b.move()
                      screen.blit(b.image,b.rect)
                      enemy_hit = pygame.sprite.spritecollide(
                          b,False,pygame.sprite.collide_mask)
                      if enemy_hit:
                          b.active = False
                          for each in enemy_hit:
                              each.hit = True
                              each.energy -= 1
                              if each.energy == 0:
                                  each.active = False
  
              # 绘制敌方大型机
              for each in big_enemies:
                  if each.active:
                      each.move()
                      if each.hit:
                          screen.blit(each.image_hit,each.rect)
                          each.hit = False
                      else:
                          if switch_plane:
                              screen.blit(each.image1,each.rect)
                          else:
                              screen.blit(each.image2,each.rect)
  
                      # 绘制血条
                      pygame.draw.line(screen,BLACK,(each.rect.left,each.rect.top - 5),(each.rect.right,2)
  
                      energy_remain = each.energy / BigEnemy.energy
                      if energy_remain > 0.2:
                          energy_color = GREEN
                      else:
                          energy_color = RED
                      pygame.draw.line(screen,energy_color,(each.rect.left + each.rect.width * energy_remain,2)
  
                      if each.rect.bottom == -10:
                          enemy3_fly_sound.play(-1)
                          each.appear = True
                      # 离开画面,关闭音效
                      if each.rect.bottom < -10 and each.appear:
                          enemy3_fly_sound.stop()
                          each.appear = False
                  else:
                      # 毁灭
                      if e3_destroy_index == 0:
                          enemy3_down_sound.play()
                      if not(delay % 2):
                          screen.blit(each.destroy_images[
                                      e3_destroy_index],each.rect)
                          e3_destroy_index = (e3_destroy_index + 1) % 6
                          if e3_destroy_index == 0:
                              enemy3_fly_sound.stop()

(编辑:十堰站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读