加入收藏 | 设为首页 | 会员中心 | 我要投稿 甘南站长网 (https://www.0941zz.com/)- 科技、行业物联网、开发、云计算、云管理!
当前位置: 首页 > 编程开发 > Python > 正文

python--飞机大战

发布时间:2023-02-16 14:09:11 所属栏目:Python 来源:互联网
导读:实现功能: 1:飞机的移动,发射子弹,手雷,生命值,生命条 2:敌飞机有3种形态(小,中,大)不同的飞机大小不一样,生命值不一样,爆炸动画也不一样 3:背景音乐,子弹击中敌机会发生碰撞的爆炸动画和音效 4:随机产生补给(双射子弹和全屏炸弹) 5:难度
  实现功能:
 
  1:飞机的移动,发射子弹,手雷,生命值,生命条
 
  2:敌飞机有3种形态(小,中,大)不同的飞机大小不一样,生命值不一样,爆炸动画也不一样
 
  3:背景音乐,子弹击中敌机会发生碰撞的爆炸动画和音效
 
  4:随机产生补给(双射子弹和全屏炸弹)
 
  5:难度逐渐增加(同一屏幕出现的飞机更多)
 
  代码如下:(一个类文件(800行代码))
 
  import pygame
  import sys
  import traceback
  from pygame.locals import *
  from random import *
  pygame.init()
  pygame.mixer.init()
  bg_size = width,height = 480,700
  screen = pygame.display.set_mode(bg_size)
  pygame.display.set_caption('飞机大战')
  background = pygame.image.load('images/background.png').convert()
  # 定义颜色
  BLACK = (0,0)
  GREEN = (0,255,0)
  RED = (255,0)
  WHITE = (255,255)
  # 载入音乐
  pygame.mixer.music.load('sound/bjmusic.wav')
  pygame.mixer.music.set_volume(0.1)
  bullet_sound = pygame.mixer.sound('sound/bullet.wav')
  bullet_sound.set_volume(0.2)
  bomb_sound = pygame.mixer.sound('sound/use_bomb.wav')
  bomb_sound.set_volume(0.2)
  supply_sound = pygame.mixer.sound('sound/supply.wav')
  supply_sound.set_volume(0.2)
  get_bomb_sound = pygame.mixer.sound('sound/get_bomb.wav')
  get_bomb_sound.set_volume(0.2)
  get_bullet_sound = pygame.mixer.sound('sound/get_bullet.wav')
  get_bullet_sound.set_volume(0.2)
  upgrade_sound = pygame.mixer.sound('sound/upgrade.wav')
  upgrade_sound.set_volume(0.2)
  enemy3_fly_sound = pygame.mixer.sound('sound/enemy3_flying.wav')
  enemy3_fly_sound.set_volume(0.6)
  enemy1_down_sound = pygame.mixer.sound('sound/enemy1_down.wav')
  enemy1_down_sound.set_volume(0.2)
  enemy2_down_sound = pygame.mixer.sound('sound/enemy2_down.wav')
  enemy2_down_sound.set_volume(0.2)
  enemy3_down_sound = pygame.mixer.sound('sound/enemy3_down.wav')
  enemy3_down_sound.set_volume(0.2)
  me_down_sound = pygame.mixer.sound('sound/me_down.wav')
  me_down_sound.set_volume(0.2)
  # 设置我的飞机类:设置我的飞机类:设置我的飞机类:设置我的飞机类:设置我的飞机类
  
  class MyPlane(pygame.sprite.Sprite):
  
      def __init__(self,bg_size):
          super(MyPlane,self).__init__()
  
          self.image1 = pygame.image.load('images/me1.png').convert_alpha()
          self.image2 = pygame.image.load('images/me2.png').convert_alpha()
          self.destroy_images = []
          self.destroy_images.extend([
              pygame.image.load('images/me_destroy_1.png').convert_alpha(),pygame.image.load('images/me_destroy_2.png').convert_alpha(),pygame.image.load('images/me_destroy_3.png').convert_alpha(),pygame.image.load('images/me_destroy_4.png').convert_alpha()
              ])
          self.rect = self.image1.get_rect()
          self.width,self.height = bg_size[0],bg_size[1]
          self.active = True
          self.invincible = False
          self.mask = pygame.mask.from_surface(self.image2)
          self.rect.left,self.rect.top = (self.width - self.rect.width) // 2,self.height - self.rect.height - 60
          self.speed = 10
  
      def moveUp(self):
          if self.rect.top > 0:
              self.rect.top -= self.speed
          else:
              self.rect.top = 0
  
      def moveDown(self):
          if self.rect.bottom < self.height - 60:
              self.rect.bottom += self.speed
          else:
              self.rect.bottom = self.height - 60
  
      def moveLeft(self):
          if self.rect.left > 0:
              self.rect.left -= self.speed
          else:
              self.rect.left = 0
  
      def moveRight(self):
          if self.rect.right < self.width:
              self.rect.right += self.speed
          else:
              self.rect.right = self.width
  
      def reset(self):
          self.rect.left,self.height - self.rect.height - 60
          self.active = True
          self.invincible = True
  # 设置敌人的飞机:# 设置敌人的飞机:# 设置敌人的飞机:# 设置敌人的飞机:# 设置敌人的飞机
  
  class SmallEnemy(pygame.sprite.Sprite):
      energy = 1
  
      def __init__(self,bg_size):
          super(SmallEnemy,self).__init__()
  
          self.image = pygame.image.load('images/enemy1.png').convert_alpha()
          self.destroy_images = []
          self.destroy_images.extend([
              pygame.image.load('images/enemy1_down1.png').convert_alpha(),pygame.image.load('images/enemy1_down2.png').convert_alpha(),pygame.image.load('images/enemy1_down3.png').convert_alpha(),pygame.image.load('images/enemy1_down4.png').convert_alpha()
          ])
          self.rect = self.image.get_rect()
          self.width,bg_size[1]
          self.active = True
          self.mask = pygame.mask.from_surface(self.image)
          self.speed = 2
          self.reset()
          self.energy = SmallEnemy.energy
          self.hit = False
  
      def move(self):
          if self.rect.top < self.height:

(编辑:甘南站长网)

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

推荐文章
    热点阅读