Python学习之路12

作者:佚名日期:

分类:轻松网赚网

  《Python编程:从入门到实践》笔记。

  本章主要是对上一篇的继续,添加“外星人”,“外星人”与飞船的交互。

  开发较大的项目时,进入每个开发阶段前回顾一下开发计划,搞清楚接下来要通过代码实现哪些功能至关重要。本篇将设计一下内容:

  研究即有代码,确定实现新功能前是否需要重构代码

  在屏幕左上角添加一个外星人,并指定合适的边距

  根据第一个外星人的边距和屏幕尺寸计算屏幕上可容纳多少个外星人。编写一个循环来填满屏幕的上半部分

  让外星舰队向两边和下方移动,直到外星人被全部击落,或有外星人撞到飞船,或有外星人抵达屏幕底部。如果所有外星人都被击落,再创建一批外星人。如果有外星人撞到飞船或到达屏幕底部,则销毁飞船并再创建一群外星人。

  限制玩一公斤网赚论坛家可用的飞机数,消耗完则游戏结束

  希望各位上一篇的代码没有删掉。在开始新的代码前,我们先在前面的函数中添加“通过快捷键Q结束游戏”的代码:

  首先我们需要编写一个外星人类。新建模块,在其中加入如下代码:

  它和类一样继承自类。现在开始创建多行外星人。

  首先在模块中添加函数用于创建外星舰队:

  然后我们依次补充下面三个函数(注意各个函数的参数),这三个函数也位于中:

  : 计算一行能放多少个外星人

  : 计算能放多少行外星人

  : 创建外星人

  现在我们还需要修改函数:

  注意,该函数增加了一个参数,这是个对象,所以代码中的方法也跟前一篇中的方法一样,一行代码更新所有对象。

  在主程序中添加创建外星人的代码:

  现在我们执行程序将会得到如下结果:

  我们将让外星舰队在窗体中向右移动,撞到屏幕边缘后下以一定距离下降,再沿反方向移动,直到外星人被消灭,或外星人撞上飞船,或有外星人到达窗体底部。

  我们需要在类中添加两个方法,一个用于检测窗体边缘,一个用于更新对象:

  如果使用文本值来控制方向,那就需要添加语句来检测舰队移动方向。鉴于只有两个可能的方向,这里使用和来表示,这样更容易改变外星人对象的坐标。

  首先,我们在该模块中添加一个更新外星舰队的函数:

  函数用于检测舰队是否碰到了窗体边缘,代码如下:

  函数用于改变舰队网赚吧的移动方向,以及让舰队向下移动,代码如下:

  上面三个函数就是在中的所有变动。

  在该模块中我们只需要在循环中添加一行代码:

  最后运行主程序,得到如下效果:

  截了一张静态图,实际是动态的。

  对于当前的程序,如果发射子弹,子弹将穿过外星人,而不是击杀,下面我们继续完善该项目,使其能击杀外星人。而要实现这一点,关键就是要检测到子弹图像与外星人图像是否重叠,重叠了则表示击中。

  为何检测子弹与卫星人的碰撞,我们需要修改函数,这里我们增加了的参数,还调用了一个新函数:

  函数用于检测子弹与外星人的碰撞,当外星人被消灭光时,清空现有子弹,并生成新的外星舰队,它的代码如下:

  方法用于检测对象之间的碰撞,它将中的每个子弹的与中的每个外星人的进行比较,并返回一个字典。该字典以第一个参数中的对象为键,以第二个参数中的键为值,在这里,以中发生了碰撞的为键,它的值为与之碰撞的(不是)!第三个参数表示是否删除第一个参数中发生了碰撞的对象,而四个参数表示是否删除第二个参数中发生了碰撞的对象。

  只需要网站如何赚钱修改调用函数的那行代码即可,增加几个参数:

  基础功能基本完成。

  对于上述代码,我们可能需要测试当消灭完外星人后,新的舰队是否能被正确创建等,如果我们以现在游戏的设定,即子弹速度为1,子弹宽度为3,那测试起来将会很痛苦。此时,我们可以修改修改游戏的参数,比如将子弹宽度修改为300,子弹速度修改为3,这样就相当于对游戏进行了快进,此时代码的运行效果如下:

  不过最后记得将参数修改回去。

  卖什么赚钱接下来我们实现外星人碰到飞船,外星人抵达窗体底部,飞船数用光导致游戏结束的代码。

  首先我们创建一个用于存储游戏信息的类,存放在文件中:

  从上述代码可以看出,我们需要在中添加一项表示“飞船数”的信息:

  我们在更新每个外星人的位置后立即检测外星人和飞船之间的碰撞,随后再检查外星人是否到达了窗体底部。修改函数,使用中的方法来检测碰撞:将第二参数中的每一个元素与第一个参数比较,检测是否碰撞,返回第二个参数中第一个发生碰撞的对象,如果没有发生碰撞则返回:

  为此我们需要增加两个函数:

  :当外星人与飞船发生碰撞时,调用次函数

  从上面的代码还可以看出,我们还需要在类中添加一个方法:

  : 当飞船到达窗体底部时调用次函数

  修改游戏的循环部分:

  在主循环中,任何情况下都需要调用,即使游戏处于非活动状态;还需要不断更新屏幕,以便在等待玩家是否选择重新开始游戏时能够修改屏幕;其他函数仅在游戏处于活动状态时太需要调用。

  本篇讲述了:

什么能快速赚钱

  如何在游戏中添加大量相同的元素;

  如何用嵌套循环来创建元素网格;

  如何控制对象在屏幕上移动的方向以及响应事件;

  如何检测和响应元素碰撞;

  如何在游戏中跟踪统计信息;

  如何使用标志来判断游戏是否结束。

  下一篇中,同时也是本项目的最后一篇,我们将:

  添加一个Play按钮让玩家能够开始游戏,以及游戏结束后再开始;

  每当玩家消灭一群外星人后,加快游戏节奏;

  添加一个分数系统。

  迎大家关注我的微信公众号"代码港" & 个人网站 www.vpointer.net ~

相关阅读

  • Python学习之路12

  • 佚名文章库
  • 《Python编程:从入门到实践》笔记。本章主要是对上一篇的继续,添加“外星人”,“外星人”与飞船的交互。开发较大的项目时,进入每个开发阶段前回顾一下开发计划,搞清楚接下
关键词不能为空
极力推荐