飞机大战是之前学习python时根据网上的代码改编写成的,有完整的代码和素材。
文件结构:

images文件:放置程序所需要的图片素材
sound文件:放置程序所需要的声音素材
bullet.py:有普通以及强化两种类型的子弹

import pygame
class Bullet1(pygame.sprite.Sprite):def __init__(self, positon):pygame.sprite.Sprite.__init__(self)self.image = pygame.image.load("images/bullet1.png").convert_alpha()self.rect = self.image.get_rect()self.rect.left, self.rect.top = positonself.speed = 12self.active = Trueself.mask = pygame.mask.from_surface(self.image)def move(self):self.rect.top -= self.speedif self.rect.top < 0:self.active = Falsedef reset(self, position):self.rect.left, self.rect.top = positionself.active = Trueclass Bullet2(pygame.sprite.Sprite):def __init__(self, positon):pygame.sprite.Sprite.__init__(self)self.image = pygame.image.load("images/bullet2.png").convert_alpha()self.rect = self.image.get_rect()self.rect.left, self.rect.top = positonself.speed = 20self.active = Trueself.mask = pygame.mask.from_surface(self.image)def move(self):self.rect.top -= self.speedif self.rect.top < 0:self.active = Falsedef reset(self, position):self.rect.left, self.rect.top = positionself.active = True

enemy.py:有小型,中型,大型三种类型的敌机

import pygame
from random import *
import time
import bulletclass SmallEnemy(pygame.sprite.Sprite):def __init__(self, bg_size):pygame.sprite.Sprite.__init__(self)self.image1 = 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.image1.get_rect()self.width, self.height = bg_size[0],bg_size[1]self.speed = 2self.active = Trueself.rect.left, self.rect.top = \randint(0, self.width - self.rect.width),\randint(-5*self.height,0)self.mask = pygame.mask.from_surface(self.image1)def move(self):if self.rect.top < self.height:self.rect.top += self.speedelse:self.reset()def reset(self):self.active = Trueself.rect.left, self.rect.top = \randint(0, self.width - self.rect.width),\randint(-5*self.height, 0)
class MidEnemy(pygame.sprite.Sprite):energy = 8def __init__(self, bg_size):pygame.sprite.Sprite.__init__(self)self.image1 = pygame.image.load("images/enemy2.png").convert_alpha()self.image_hit = pygame.image.load("images/enemy2_hit.png").convert_alpha()self.destroy_images = []self.destroy_images.extend([\pygame.image.load("images/enemy2_down1.png").convert_alpha(),\pygame.image.load("images/enemy2_down2.png").convert_alpha(),\pygame.image.load("images/enemy2_down3.png").convert_alpha(),\pygame.image.load("images/enemy2_down4.png").convert_alpha(),\])self.rect = self.image1.get_rect()self.width, self.height = bg_size[0],bg_size[1]self.speed = 1self.active = Trueself.hit = Falseself.energy = MidEnemy.energyself.rect.left, self.rect.top = \randint(0, self.width - self.rect.width),\randint(-5*self.height,-self.height)self.mask = pygame.mask.from_surface(self.image1)def move(self):if self.rect.top < self.height:self.rect.top += self.speedelse:self.reset()def reset(self):self.active = Trueself.energy = MidEnemy.energyself.rect.left, self.rect.top = \randint(0, self.width - self.rect.width),\randint(-8*self.height,-self.height)class BigEnemy(pygame.sprite.Sprite):energy = 20def __init__(self, bg_size):pygame.sprite.Sprite.__init__(self)self.image1 = pygame.image.load("images/enemy3_n1.png").convert_alpha()self.image2 = pygame.image.load("images/enemy3_n2.png").convert_alpha()self.image_hit = pygame.image.load("images/enemy3_hit.png").convert_alpha()self.destroy_images = []self.destroy_images.extend([\pygame.image.load("images/enemy3_down1.png").convert_alpha(),\pygame.image.load("images/enemy3_down2.png").convert_alpha(),\pygame.image.load("images/enemy3_down3.png").convert_alpha(),\pygame.image.load("images/enemy3_down4.png").convert_alpha(),\pygame.image.load("images/enemy3_down5.png").convert_alpha(),\pygame.image.load("images/enemy3_down6.png").convert_alpha(),\])self.rect = self.image1.get_rect()self.width, self.height = bg_size[0],bg_size[1]self.speed = 1self.active = Trueself.hit = Falseself.energy = BigEnemy.energyself.rect.left, self.rect.top = \randint(0, self.width - self.rect.width),\randint(-10*self.height,-5*self.height)self.mask = pygame.mask.from_surface(self.image1)def move(self):if self.rect.top < self.height:self.rect.top += self.speedelse:self.reset()def reset(self):self.energy = BigEnemy.energyself.active = Trueself.rect.left, self.rect.top = \randint(0, self.width - self.rect.width),\randint(-10*self.height,-5*self.height)

myplane.py:控制自己战机的行为

import pygameclass MyPlane(pygame.sprite.Sprite):def __init__(self, bg_size):pygame.sprite.Sprite.__init__(self)self.image1 = pygame.image.load("images/me1.png").convert_alpha()self.image2 = pygame.image.load("images/me2.png").convert_alpha()self.destroy_image = []self.destroy_image.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.active = Trueself.rect = self.image1.get_rect()self.width, self.height = bg_size[0], bg_size[1]self.rect.left, self.rect.top = \(self.width - self.rect.width) // 2, \self.height - self.rect.height - 60self.speed = 10self.mask = pygame.mask.from_surface(self.image1)self.invincible = Falsedef moveUp(self):if self.rect.top > 0:self.rect.top -= self.speedelse:self.rect.top = 0def moveDown(self):if self.rect.bottom < self.height - 60:self.rect.top += self.speedelse:self.rect.bottom = self.height - 60def moveLeft(self):if self.rect.left > 0:self.rect.left -= self.speedelse:self.rect.left = 0def moveRight(self):if self.rect.right < self.width:self.rect.left += self.speedelse:self.rect.right = self.widthdef  reset(self):self.rect.left, self.rect.top = \(self.width - self.rect.width) // 2, \self.height - self.rect.height - 60self.active = Trueself.invincible = True

supply.py:对己方战机的弹药强化供给

import pygame
from random import *class Bullet_Supply(pygame.sprite.Sprite):def __init__(self, bg_size):pygame.sprite.Sprite.__init__(self)self.image = pygame.image.load("images/bullet_supply.png").convert_alpha()self.rect = self.image.get_rect()self.width, self.height = bg_size[0], bg_size[1]self.rect.left, self.rect.bottom = \randint(0, self.width - self.rect.width), -100self.speed = 5self.active = Falseself.mask = pygame.mask.from_surface(self.image)def move(self):if self.rect.top < self.height:self.rect.top += self.speedelse:self.active = Falsedef reset(self):self.active = Trueself.rect.left, self.rect.bottom = \randint(0, self.width - self.rect.width), -100class Bomb_Supply(pygame.sprite.Sprite):def __init__(self, bg_size):pygame.sprite.Sprite.__init__(self)self.image = pygame.image.load("images/bomb_supply.png").convert_alpha()self.rect = self.image.get_rect()self.width, self.height = bg_size[0], bg_size[1]self.rect.left, self.rect.bottom = \randint(0, self.width - self.rect.width), -100self.speed = 5self.active = Falseself.mask = pygame.mask.from_surface(self.image)def move(self):if self.rect.top < self.height:self.rect.top += self.speedelse:self.active = Falsedef reset(self):self.active = Trueself.rect.left, self.rect.bottom = \randint(0, self.width - self.rect.width), -100

main.py:通过pygame库实现最终效果(代码过长,请在github中下载)

链接:https://github.com/big-indoorsman/plane_war

python版飞机大战及码源相关推荐

  1. html+javascript实现的网页版飞机大战小游戏源码

    html+javascript实现的网页版飞机大战小游戏源码 完整代码下载地址: html+javascript实现的网页版飞机大战小游戏源码 index.html <!DOCTYPE html ...

  2. python版飞机大战

    python版飞机大战 用python几百行代码搞定飞机大站游戏. 我们利用pygame包进行飞机大战的游戏开发,所以大家首先得安装好pygame包,本游戏一共封装了8个类,大家可以在GitHub上下 ...

  3. python飞机大战源代码-python版飞机大战代码分享

    利用pygame实现了简易版飞机大战.源代码如下: # -*- coding:utf-8 -*- import pygame import sys from pygame.locals import ...

  4. pygame的应用——python版飞机大战

    利用pygame实现了简易版飞机大战.源代码如下: # -*- coding:utf-8 -*- import pygame import sys from pygame.locals import ...

  5. 重温经典:Python版飞机大战源码 神器 玩游戏就玩自己开发的

    目录 导语 正文 一.环境安装 二.我方飞机 三.敌方飞机 四.控制键盘移动 五.检测子弹碰撞 六.效果图 总结 免费源码领取处: 往期文章推荐-- Python从入门到实战-- 绘图Turtle系列 ...

  6. python版飞机大战源码和素材免费

    个人写的python飞机大战 初学python 里面有两个版本 一个是多敌机版 一个是单敌机版 点击打开链接

  7. Python版飞机大战游戏的设计(一)-----敌机出场

    pygame 快速入门 目标 项目准备 使用 pygame 创建图形窗口 理解 图像 并实现图像绘制 理解 游戏循环 和 游戏时钟 理解 精灵 和 精灵组 项目准备 新建 飞机大战 项目 新建一个 h ...

  8. 飞机大战HTML5游戏源码,基于Canvas制作的网页版飞机大战游戏+飞机大战手机端

    简介: 飞机大战HTML5游戏源码是一款基于Canvas制作的网页版飞机大战游戏,画质精美的飞机大战手机端游戏源码 网盘下载地址: http://kekewangLuo.net/W1S2LQcqAT2 ...

  9. Python实现飞机大战-第二部分(附源码、素材、超详细教程)

    飞机大战第二部分 1.前言 2.飞机射击 2.1.添加子弹的相关设置 2.2.创建文件bullet.py 2.3.修改game_functions.py 2.4.修改mian.py 2.5.射击效果 ...

最新文章

  1. ROS 使用参数以及相应的 .launch 文件编写
  2. [C程序设计语言]第一部分
  3. C# WPF Caliburn.Micro框架下利用Mef加载其它项目界面
  4. [渝粤教育] 西北工业大学 机械原理 参考 资料
  5. Rancher Managed Network实践
  6. @objc private 定义函数
  7. TS封装格式介绍及解析
  8. java swf pdf_基于Java SWFTools实现把pdf转成swf
  9. 看拉扎维《模拟CMOS集成电路设计》的一些总结和思考(三)——单级放大器
  10. python制作APP,此APP可识别TEM图片结构轮廓,并将坐标提取到excel中,画出TEM结构轮廓图(tkinter,opencv-python)
  11. Failed to load project configuration: cannot parse file xxx Message: 前言中不允许有内容。
  12. css基础-属性值计算过程
  13. 如何用漫画说明 XSS 和 CSRF 的区别?
  14. 什么oracle,什么是ORACLE?
  15. 抖音跳转微信小卡片怎么做不封号
  16. cad能整体比例缩小吗_cad比例缩放 cad如何整体缩小尺寸
  17. 摄像机sensor介绍
  18. 互联网招聘的阴阳两极
  19. Photoshop素材
  20. 特斯拉上海工厂二期进展神速:已经开始建造屋顶

热门文章

  1. 2021年三季度中国生物制品行业A股上市企业营收排行榜:智飞生物业绩突出,8家企业新上榜(附热榜TOP42详单)
  2. 三种串行总线协议的区别(SPI、I2C和UART)
  3. CF 472D Riverside Curio
  4. Ubuntu 20.04 安装deepin-wine
  5. Beyond Compare忽略时间对比
  6. linux内存管理-页面规整
  7. 扬帆际海——怎么做跨境电商?
  8. 【JZOJ4597】现世斩
  9. 关于云ERP系统的错误看法
  10. 毕业季,说一说自己从学生初入职场的感受