python实现外星人入侵——0

前言

本系列博客适合对py的基本语法已经有了简单的了解,希望通过一个实例来进行加深的朋友。
或者是已经跟着书本一步步实现了这个项目,希望能够复习一遍
这里我使用的是vscode进行编程,参考书为《Python编程:从入门到实践》。

2021.3.31:添加了一个下载源代码、课后题和相关数据(主要是16章)的网站,图灵社区,链接:
传送门

虽然基本上是延用了书上的内容,但我后续的博客中会进行添加内容(在做了在做了,新建文件夹)。

首先上传一下我的代码部分和游戏中的贴图,以及参考书,还有整个项目的思维导图(.xmind)
百度网盘链接
提取码是"xybb",也就是博主名字的缩写。
或者微信打开下图:
在这里插入图片描述

另外多说一下,书上的逻辑是从简单到复杂,一点点地实现整个项目,这里我给出一个不一样的视角,将整个文件拿出来分析,方便对整个项目有一个更深入的了解,最好是把书上的过程也走一遍。
话不多说,先看一下游戏长什么样吧。

游戏内容

在这里插入图片描述
我们会使用py来构建这样一个界面,点击play开始游戏。
左上角是生命数,算上当前的一次一共为三条命。
中间为历史最高分,右上角为当前的分数,下面是等级。
每一波都会生成4*9个外星人,外星人会向右移动,碰到边界就反向,同时下落一段距离。
我们需要发射子弹来消灭他们,但是在屏幕中出现的子弹个数只有三颗,也就是在子弹飞出屏幕前子弹是越用越少的,珍惜他们。
如果飞船碰到外星人或者外星人到了屏幕底部还没有被消灭,你会失去一条命。
如果成功消灭一波敌人,那么就可以得到升级,同时外星人的移动速度、子弹的移动速度和消灭外星人的分数都会得到提高。(表示手残党还没过第五波)

操作:
按左右键实现移动飞船,空格键发射子弹,按"q"或者关闭窗口退出游戏。

提前准备

首先我们需要一个pygame。简单查了一下,这就是一个方便游戏开发的py包,里面有很多奇奇怪怪的东西,不过确实很方便。下载地址
这时你会发现下载的是whl文件,需要我们使用pip运行。
首先我们先整一个pip:

  • 检查pip:(毕竟可能之前已经安装过了或者是自带的)
    python -m pip --version
  • 更新pip:python -m pip install --upgrade pip
  • 安装pip:传送门

或者是自己上网上搜一下,这种都很多的。
上述指令都是需要用cmd打开的,可以用windows+r快捷键打开,输入cmd敲回车进入
在这里插入图片描述
准备好pip之后,我们先将下好的文件放在项目文件夹里面,然后需要输入:
python -m pip install --user 文件名,这里因为版本可能不一样,所以我只给出了标准格式。
如果是我,就需要这样:
在这里插入图片描述
(其实是不需要修改文件夹路径的,直接输入指令就行)

做好了上述工作,我们就可以开始我们的游戏之旅了。

文件解读

在这里插入图片描述
非py文件有三个,一个是vscode自带的,估计是导入的库和其他的一些,一个是image,也就是我们要贴的图片,还有一个是我们的pygame。这些都不用管。

接下来是涉及到的类。
在游戏中,我们有飞船(ship)、外星人(alien)和子弹(bullet)这些元素,分别为其建造了单独的类;
另外因为游戏要有一些统计信息(gamestats)以及显示这些信息的框(scoreboard),并且py不像html可以随便生成按钮,我们还有一个按钮(button)。
最后,我们将设置(setting)也单独拿出来作为一个类,方便后续的修改。

总结一下:

  1. 飞船
  2. 外星人
  3. 子弹
  4. 统计信息
  5. 显示框
  6. 按钮
  7. 设置

好家伙,剩下的只有两个文件了,其中一个alien_invasion是游戏的总起。
game_functions是主要的内置函数,比如感应按键、鼠标,检测发生的事件(飞船撞到外星人、外星人和子弹相遇、外星人被消灭干净)

接下来

接下来我将分成几部分来阐述这个项目,类、事件函数和主函数部分。

项目的整体难度不大,但是足够显示出一个项目开发中的重点,我希望通过这个项目能对自己和他人进行启发。

python实现外星人入侵——1

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值