《Python飞机大战》项目实战 | pygame + 面向对象 | 高价值编程学习项目
已完结
《Python飞机大战》项目实战 | pygame + 面向对象 | 高价值编程学习项目

课程简介

飞机大战是一种经典的 2D 射击游戏,通常初学者学习 Python 编程的一个很好的项目。整个项目的编写是基于面向对象思想,通过这个课程帮助大家扎实 Python 基础知识和技能。

章节目录
互动留言

1/11 《Python 飞机大战》内容摘要

飞机大战是一种经典的 2D 射击游戏,通常初学者学习 Python 编程的一个很好的项目。通过这个课程帮助大家扎实 Python 基础知识和技能。 1. 效果展示 操作:W 前、S 后、A 左、D 右、J 发射1个子弹、K 发射 3 个子弹、L 发射 5 个子弹 2. 内容介绍 /?p=21583 主要介绍虚拟环境安装、PyGame安装、素材介绍 /?p=21596 通过案例讲解PyGame的使用... 查看完整内容

2/11 《Python 飞机大战》(一)准备工作

我们的开发环境: Windows 11 PyCharm 2021.1.3Python 3.8.5PyGame 2.5.1PyInstaller 5.13.2 Or Py2App 0.28.6 1. Python 解释器 Win:https://www.python.org/downloads/windows/Mac:https://www.python.org/downloads/macos/ P... 查看完整内容

3/11 《Python 飞机大战》(二)PyGame

这一章节,我们主要学习 PyGame 相关的内容,为后面《飞机大战》程序的编写做铺垫。主要内容如下: PyGame 游戏窗口创建PyGame 图像绘制操作PyGame 事件处理机制PyGame 音效相关实现 pygame官网:http://www.pygame.orgpygame手册:http://www.pygame.org/docs/ 1. 游戏窗口创建 游戏主窗口创建大致分为以下几个步骤: ... 查看完整内容

4/11 《Python 飞机大战》(三)代码框架

在开始具体的飞机大战游戏功能开发之前,我们首先着手编写游戏的主体代码框架。随后的开发过程将围绕这个主体框架展开,只需填充和扩展框架中的空白部分。 需要注意的是,由于《飞机大战》项目相对简单,我们能够实现完整的代码框架。对于更加复杂的项目,我们可能需要在开发过程中一边思考、一边实现、一边构建项目的代码结构。 1. 游戏流程 游戏是由一帧又一帧的时间组成的,在每一帧时间内,游戏都会做一些固定的事情。接... 查看完整内容

5/11 《Python 飞机大战》(四)地图滚动

飞机大战中,通过巧妙的地图滚动机制,玩家能够更加深刻地感受到飞机飞行的真实效果。这种不断变化的地图背景在游戏中犹如一幅壮丽的风景画,为飞机飞行提供了生动而多样化的舞台。 1. 地图滚动思路 首先: 准备一张图片,确保该图片的上下部分能够无缝衔接,并创建两个相同的图片对象;接着:将下方的图片放置在窗口的起始位置(0位置),使其充满整个屏幕,将上方的图片放置在负窗口高度位置,即屏幕上方不可见的位置;然... 查看完整内容

6/11 《Python 飞机大战》(五)子弹实现

英雄飞机和敌人飞机都会发射子弹,我们先来实现子弹相关类。这里一共有两个类: Bullet 类:单个子弹类BulletForHero 类:英雄飞机携带的弹夹类 1. Bullet 类 Bullet 类是单个子弹的实现类,实现的效果如下: 其实现函数功能如下: move 子弹移动函数,需要根据具体的子弹发射策略来指定子弹的移动方向draw_element 绘制子弹对象set_unused 当子弹无效时... 查看完整内容

7/11 《Python 飞机大战》(六)英雄飞机

英雄飞机的移动是通过鼠标或者键盘事件,即: 鼠标拖动英雄飞机,自动发射子弹通过键盘控制飞机移动,按键发射子弹 我们这里实现第二种方式。这里需要注意:英雄飞机的移动是由按键事件驱动。 1. HeroPlane 类实现 英雄飞机是我们的主角,其基本实现的功能如下: top、bottom、left、right 4 个函数是飞机在不同方向上的移动函数shoot 用于发射子弹draw_element 绘制英... 查看完整内容

8/11 《Python 飞机大战》(七)敌人飞机

现在我们的主场景中还没有敌机,我们接下来实现多个敌机从上向屏幕下方移动,并能够随机发射子弹。 1. EnemyPlane 类 该类的定义了单个敌机的实现,主要实现方法如下: set_used 设置飞机可用,并随机设置其初始位置set_unused 设置飞机不可用,并将其设置到不合法的位置calc_position 计算敌机位置、以及敌机发射的子弹位置draw_element 绘制敌机、以及敌机子弹... 查看完整内容

9/11 《Python 飞机大战》(八)碰撞检测

在游戏开发中,碰撞检测是一种用于确定游戏中物体是否相互接触或碰撞的技术。这些物体可以是游戏中的角色、道具、障碍物、子弹等。碰撞检测的主要目的是检测游戏中的物体之间是否发生碰撞,以便触发适当的游戏逻辑、处理碰撞效果或改变物体的状态。 1. 碰撞处理 游戏中每个对象都会存在 bbox 对象,我们通过判断不同物体之间的 bounding box 是否相交来确定两个对象是否发生碰撞,然后进行相应的处。游戏... 查看完整内容

10/11 《Python 飞机大战》(九)音效爆炸

当子弹和敌机碰撞,我们并不想仅将飞机和子弹消失,应该在其发生碰撞的位置播放一组爆炸动画,播放爆炸音效,游戏效果更为逼真一些。 1. Bomb 类 爆炸动画实现思路很简单,我们将一组图片按照一定的时间间隔,将其按顺序绘制到屏幕上,即可显示为动画效果。 class Bomb: def __init__(self, scene): # 加载爆炸素材 self.images = [ pygame.imag... 查看完整内容

11/11 《Python 飞机大战》(十)打包分发

/?p=68483 1. Windows 打包步骤 首先,进入到项目根目录下然后,在项目根目录下执行命令:pyinstaller --noconsole --onefile --name plane App.py接着,拷贝 source 目录到 dist 目录下,保证和 exe 同级目录最后,可以将 exe 和 source 目录拷贝、分发给没有 Python 环境的机器就可以直接运行 2. Ma... 查看完整内容