准备文件

需要模块模块pygame

  • pygame简介
    Pygame是跨平台Python模块,专为电子游戏设计,包含图像、声音。建立在SDL基础上,允许实时电子游戏研发的模块。

  • pygame的安装
    使用命令 pip install pygame

所需素材(包括音频,图片素材):https://pan.baidu.com/s/1lq8CDvvhgymB_5h2wzKc8Q
密码:tebp

实现思路

原图

重要函数及部分代码展示

重要函数

  1. 启用pygame界面与音频组件组件,绘制一个480*700主界面:
pygame.init()
pygame.mixer.init()
bg_size = width, height = 480, 700
screen = pygame.display.set_mode(bg_size)
  1. 导入素材,以下为导入素材所用函数:
    pygame.image.load(“图片路径”).convert_alpha() //以alpha通道导入图片,识别图片去白色背景,用于导入飞机子弹素材。
    pygame.image.load(“图片路径”).convert() //常规导入图片,用于导入背景素材。

    pygame.mixer.music.load(“图片路径”) //导入音乐素材。
    pygame.mixer.music.set_volume() //设置声音大小。

  2. 创建飞机,子弹之类的对象并为其初始化,添加移动的方法,例:

import pygameclass MyPlane(pygame.sprite.Sprite):def __init__(self, bg_size):#初始化与导入素材passdef moveUp(self):#向上移动方法passdef moveDown(self):#向下移动方法passdef moveLeft(self):passdef moveRight(self):passdef reset(self):#重置即销毁方法pass
  1. 碰撞检测
    pygame.sprite.spritecollide(素材1,素材2, False, pygame.sprite.collide_mask)
    如果两个素材接触到则返回一个bool值False

  2. 详细代码见:链接:https://pan.baidu.com/s/19m0xiNEFfgNNfokydDGxRg
    提取码:n09t

部分代码

  1.     # 检测子弹是否击中敌机for b in bullets:if b.active:b.move()screen.blit(b.image, b.rect)enemy_hit = pygame.sprite.spritecollide(b, enemies, False, pygame.sprite.collide_mask)if enemy_hit:b.active = Falsefor e in enemy_hit:if e in mid_enemies or e in big_enemies:e.hit = Truee.energy -= 1if e.energy == 0:e.active = Falseelse:e.active = False
    
  2. 玩家飞机对象:
import pygame
#继承pygame.sprite.Sprite类
class 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_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.rect.left, self.rect.top = \(self.width - self.rect.width) // 2, \self.height - self.rect.height - 60设置移动速度self.speed = 10#设置状态self.active = Trueself.invincible = Falseself.mask = pygame.mask.from_surface(self.image1)def 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

结果演示

给出初步实现效果如下:

python-pygame:实现飞机大战详情(含源码)相关推荐

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

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

  2. 用python画皇冠_【推荐】手把手教你如何用Python画一棵漂亮樱花树含源码

    最近给大家整理了一下,挑了一些我觉得不错的代码分享给大家手把手教你如何用Python画一棵漂亮樱花树含源码. 动态生成樱花 效果图(这个是动态的): import turtle as T import ...

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

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

  4. 雷霆战机9.5全新上线,Python+Pygame开发飞机大战完整游戏项目(附源码)

    项目名称:太空大战 开发环境:Python3.6.4 第三方库:Pygame1.9.6 代码编辑器:Sublime Text 先来看一下游戏画面吧!  游戏画面动态且丰富哦!   需求分析 利用Pyt ...

  5. 基础教学:用python实现儿时游戏飞机大战(带源码)

    python是一门非常简单的语言,快速入门后可以做很多事情.例如爬虫,数据分析,自动化运维,机器学习量化分析啊等等! 视频教学源码学习资料领取地址:关注+私信小编"资料"即可. 看 ...

  6. 边玩边学,13个 Python 小游戏真有趣啊(含源码)

    经常听到有朋友说,学习编程是一件非常枯燥无味的事情.其实,大家有没有认真想过,可能是我们的学习方法不对? 比方说,你有没有想过,可以通过打游戏来学编程? 今天我想跟大家分享几个Python小游戏,教你 ...

  7. 飞机大战小游戏源码---飞机大战初体验

    开发环境: Windows10,pycharm,python3 源码使用教程: 打开pycharm,创建一个新的项目,文件-->新建项目 项目命名:飞机大战初体验,基本解释器选择python3版 ...

  8. java飞机大战编程_[源码和文档分享]Java飞机大战游戏设计与实现

    1 概述 本次Java课程设计是做一个飞机大战的游戏,应用Swing编程,完成一个界面简洁流畅.游戏方式简单,玩起来易于上手的桌面游戏.该飞机大战项目运用的主要技术即是Swing编程中的一些窗口类库. ...

  9. JAVA飞机大战游戏附源码

    JAVA飞机大战附源码 java飞机大战 效果图如下 java飞机大战 话不多说 直接上源码 窗体部分 package UI; //自定义窗体 //创建类 继承JFrame //创建构造方法,设置窗体 ...

  10. 新版飞机大战游戏安卓源码项目

    作者nuptboyzhb,源码newplanegame,新版飞机大战是一款以真实战机为模板的飞行射击类游戏,体验新颖,玩法炫酷.一样的经典,不一样的体验.飞机模型基于目前的主流战机:包括美国F16,F ...

最新文章

  1. 编程珠玑第六章习题二——C++实现一个数的因子分解
  2. 校友管理软件 JAVA_开源项目1:某大学校友管理系统
  3. matlab_simulink笔记01——模块属性的设置以及模块参数的设置
  4. ARM 架构演进对未来计算意味着什么?
  5. 从一个小程序说起 - C++快速入门02
  6. mysql从字段取出地名_mysql中从字段中URL提取域名信息
  7. 怎么用命令提示符测试软件网速,cmd指令测试网速技巧
  8. 这些重构小技巧,给你项目瘦瘦身吧!
  9. Linux如何在文件中新建一行,linux – 如何使用sed将文本插入文件的第一行?
  10. 利用java做前端连接数据库_基于java的前端与数据库的交互
  11. html如何设置展开全文,Js实现点击查看全文(纯手工代码)
  12. OpenCV基于dlib进行人脸关键点检测(摄像头)
  13. html标签的默认样式及去除
  14. 《HyVulDect: A hybrid semantic vulnerability mining system based ongraph neural network》阅读笔记
  15. DML语言(数据库操作语言)和DQL语言(数据库查询语言)
  16. 2021万向区块链黑客马拉松圆满收官
  17. 登录一粒云客户端时,登录提示“用户名错误”是什么原因?
  18. 添加商务通的几种方式
  19. 不添一分钱 轻松使用无盘WIN2000(转)
  20. How many times rampant Warcraft Star players ah

热门文章

  1. QPSK与QDPSK调制与解调(待更新)
  2. 爬梯:Docker全解析(一)
  3. oracle成本cbo,基于成本的优化--CBO
  4. Pomelo Treasures
  5. 省份展开html5 实现,javascript html5 canvas实现可拖动省份的中国地图
  6. Hive:从HDFS回收站恢复被删的表
  7. muduo库net源码分析六(Socket 封装)
  8. EDI集成ERP一体化解决方案
  9. android计步器摘要,ios - Healthkit每小时活动摘要包含步数,距离和卡路里? - 堆栈内存溢出...
  10. ORACLE 统计各个部门 工资级别为小于2000,2000-3000,3000+的分别为多少