python版飞机大战及码源
飞机大战是之前学习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版飞机大战及码源相关推荐
- html+javascript实现的网页版飞机大战小游戏源码
html+javascript实现的网页版飞机大战小游戏源码 完整代码下载地址: html+javascript实现的网页版飞机大战小游戏源码 index.html <!DOCTYPE html ...
- python版飞机大战
python版飞机大战 用python几百行代码搞定飞机大站游戏. 我们利用pygame包进行飞机大战的游戏开发,所以大家首先得安装好pygame包,本游戏一共封装了8个类,大家可以在GitHub上下 ...
- python飞机大战源代码-python版飞机大战代码分享
利用pygame实现了简易版飞机大战.源代码如下: # -*- coding:utf-8 -*- import pygame import sys from pygame.locals import ...
- pygame的应用——python版飞机大战
利用pygame实现了简易版飞机大战.源代码如下: # -*- coding:utf-8 -*- import pygame import sys from pygame.locals import ...
- 重温经典:Python版飞机大战源码 神器 玩游戏就玩自己开发的
目录 导语 正文 一.环境安装 二.我方飞机 三.敌方飞机 四.控制键盘移动 五.检测子弹碰撞 六.效果图 总结 免费源码领取处: 往期文章推荐-- Python从入门到实战-- 绘图Turtle系列 ...
- python版飞机大战源码和素材免费
个人写的python飞机大战 初学python 里面有两个版本 一个是多敌机版 一个是单敌机版 点击打开链接
- Python版飞机大战游戏的设计(一)-----敌机出场
pygame 快速入门 目标 项目准备 使用 pygame 创建图形窗口 理解 图像 并实现图像绘制 理解 游戏循环 和 游戏时钟 理解 精灵 和 精灵组 项目准备 新建 飞机大战 项目 新建一个 h ...
- 飞机大战HTML5游戏源码,基于Canvas制作的网页版飞机大战游戏+飞机大战手机端
简介: 飞机大战HTML5游戏源码是一款基于Canvas制作的网页版飞机大战游戏,画质精美的飞机大战手机端游戏源码 网盘下载地址: http://kekewangLuo.net/W1S2LQcqAT2 ...
- Python实现飞机大战-第二部分(附源码、素材、超详细教程)
飞机大战第二部分 1.前言 2.飞机射击 2.1.添加子弹的相关设置 2.2.创建文件bullet.py 2.3.修改game_functions.py 2.4.修改mian.py 2.5.射击效果 ...
最新文章
- ROS 使用参数以及相应的 .launch 文件编写
- [C程序设计语言]第一部分
- C# WPF Caliburn.Micro框架下利用Mef加载其它项目界面
- [渝粤教育] 西北工业大学 机械原理 参考 资料
- Rancher Managed Network实践
- @objc private 定义函数
- TS封装格式介绍及解析
- java swf pdf_基于Java SWFTools实现把pdf转成swf
- 看拉扎维《模拟CMOS集成电路设计》的一些总结和思考(三)——单级放大器
- python制作APP,此APP可识别TEM图片结构轮廓,并将坐标提取到excel中,画出TEM结构轮廓图(tkinter,opencv-python)
- Failed to load project configuration: cannot parse file xxx Message: 前言中不允许有内容。
- css基础-属性值计算过程
- 如何用漫画说明 XSS 和 CSRF 的区别?
- 什么oracle,什么是ORACLE?
- 抖音跳转微信小卡片怎么做不封号
- cad能整体比例缩小吗_cad比例缩放 cad如何整体缩小尺寸
- 摄像机sensor介绍
- 互联网招聘的阴阳两极
- Photoshop素材
- 特斯拉上海工厂二期进展神速:已经开始建造屋顶