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: (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |