外星人入侵
Python入门编程一书中的第一个项目——外星人入侵
Castle Yeager
这个作者很懒,什么都没留下…
展开
-
Pygame 外星人入侵(10)计分板
目录引言一、游戏难度的提升1、提升速度2、何时提升速度3、重置速度二、计分板功能1、玩家的得分2、绘制玩家得分3、提高玩家得分4、优化1:正确计算每一只外星人的分数5、优化2:外星人分数提升6、优化3:将得分标准化三、计分板的其他功能1、玩家最高得分2、玩家等级4、余下的飞船数四、总结引言本篇博文是《外星人入侵》系列的完结篇,在之前的博文中,我们实现了游戏的绝大多数功能并将相关代码封装起来,方便修改。在本完结篇中,我们将要实现的功能有二:1、游戏难度的提升2、计分板的实现一、游戏难度的提升既然原创 2020-08-10 00:27:13 · 1488 阅读 · 3 评论 -
Pygame 外星人入侵(9)开始按钮
目录引言一、定义按钮基类1、按钮的构成2、在按钮上渲染文本3、将按钮和文本“组合”二、绘制开始按钮1、修改游戏设置2、创建开始按钮实例3、修改绘制屏幕方法三、游戏开始和游戏失败时开启游戏1、检测玩家点击按钮的事件2、点击开始按钮后的业务3、修改主模块逻辑四、小结引言直到上一篇博文为止,我们实现了《外星人入侵》这款有中飞船、外星人、子弹的绘制和移动,以及它们之间的碰撞检测。在这篇博文中,将要实现为游戏增加“开始按钮”。一、定义按钮基类由于 pygame 不提供原生的按钮类供我们使用,因此我们需要自己原创 2020-08-08 02:01:58 · 1410 阅读 · 0 评论 -
Pygame 外星人入侵(8)互相伤害
目录引言一、子弹击落外星人1、子弹和外星人碰撞检测2、调用碰撞检测方法二、外星人击落飞船1、飞船和外星人碰撞检测2、飞船和外星人碰撞后的业务3、重构 update_aliens()三、外星人触底1、外星人和屏幕的碰撞检测2、代码整合封装四、设置飞船数量和游戏状态1、设置玩家飞船数2、设置游戏的活跃状态3、修改碰撞后的业务4、修改游戏主循环代码五、小结引言到这篇博文位置,我们对《外星人入侵》这款游戏中的游戏元素进行了绘制,游戏元素的移动进行了完善。我们已经可以在屏幕上移动飞船,发射子弹;同时屏幕上方的外原创 2020-08-06 23:30:26 · 400 阅读 · 0 评论 -
Pygame 外星人入侵(7)外星人压境
Pygame 外星人入侵(7)外星人压境目录Pygame 外星人入侵(7)外星人压境一、外星人单向移动1、设置外星人移动速度2、更新外星人的位置3、修改主模块二、更加合理地移动1、碰撞检测2、碰撞后的业务3、整群外星人的碰撞检测4、修改主模块方法三、小结在之前的博文中,实现了在屏幕上绘制一大群外星人,现在我们想让这群外星人动起来,它们的移动遵循着一定的规律。一、外星人单向移动我们首先要实现的是,如何让一群外星人一起向屏幕右侧移动。1、设置外星人移动速度游戏参数性质的变量统一存放在 设置模块中的设原创 2020-08-05 22:52:53 · 589 阅读 · 0 评论 -
Pygame 外星人入侵(6)外星人大军
Pygame 外星人入侵(6)外星人大军目录Pygame 外星人入侵(6)外星人大军一、绘制单个外星人1、初始化外星人2、将外星人绘制到屏幕左上角3、修改update_screen()二、绘制一行外星人1、每行要绘制多少个外星人2、循环生成一行外星人3、修改主模块三、绘制一群外星人1、总共要绘制多少行外星人2、循环绘制一群外星人四、小结直到上一篇博文为止,我们实现了游戏屏幕的绘制、飞船的绘制、飞船的移动以及子弹的绘制和发射。之后将要实现的是外星人的绘制。大致分为这几步:1、绘制单个外星人2、绘原创 2020-08-05 18:35:18 · 559 阅读 · 0 评论 -
Pygame 外星人入侵(5)发射子弹
Pygame 外星人入侵(5)发射子弹目录Pygame 外星人入侵(5)发射子弹引言一、定义子弹类1、增加子弹相关的设置参数2、新增子弹模块3、定义子弹类二、发射子弹1、实现发射逻辑2、优化1:删除出界的子弹3、优化2:限制子弹数量三、代码封装四、小结引言在之前的博文中,我们实现了游戏屏幕的绘制、飞船的绘制以及玩家通过按键来操控飞船移动的功能。在这篇博文中,将会完成让玩家飞船发射子弹的功能。一、定义子弹类我们既然要 “发射”“子弹”,那么首先就必须要有可发射的“子弹”。所以我们需要自己定义一个原创 2020-08-01 13:11:16 · 1883 阅读 · 2 评论 -
Pygame 外星人入侵(4)飞船移动
Pygame 外星人入侵(4)飞船移动目录Pygame 外星人入侵(4)飞船移动引言一、移动飞船1、响应玩家按键2、修改飞船的坐标二、优化1:连续移动1、设置飞船移动的状态属性2、响应事件以修改状态3、update() 修改飞船位置4、修改主模块代码三、左右移动四、优化2:调整飞船的速度1、设置速度参数2、完善飞船调速(有点啰嗦)五、优化3:限制飞船活动范围六、封装代码七、小结引言直到上一篇博文为止,我们实现了:1、游戏屏幕的绘制2、飞船的初始化和绘制3、现有代码的封装和重构实现效果:在这原创 2020-07-31 17:04:07 · 1727 阅读 · 2 评论 -
Pygame 外星人入侵(3)
Pygame 外星人入侵(3)目录Pygame 外星人入侵(3)引言一、重构事件循环1、自定义模块 game_functions2、封装函数 check_events()3、主模块代码缩减二、重构屏幕更新1、封装函数 update_screen()2、主模块代码缩减三、小结引言到这里为止,我们已经可以在一个 Pygame 游戏屏幕上绘制并显示出一架飞船了,且飞船的位置是我们所心仪的。那么在这部分,我们要对现有的代码做一下重构。目的是简化主模块的代码量。一、重构事件循环在第一篇链接: https:原创 2020-07-28 13:15:21 · 332 阅读 · 0 评论 -
Pygame 外星人入侵(2)
Pygame 外星人入侵(2)目录Pygame 外星人入侵(2)引言一、飞船类1、飞船图片的准备2、定义飞船类3、飞船类的构造函数4、飞船类的实例方法二、显示飞船到屏幕上1、飞船类的导入2、实例化飞船3、绘制飞船三、小结引言从上一篇截止的地方开始,我们将在这一篇博文中:1、编写飞船类的代码2、初始化一架 垂直位置居中、水平位置靠屏幕底端的飞船3、将这架飞船显示到上一篇的屏幕上一、飞船类我们现在有了一块 Pygame 游戏屏幕,现在要往屏幕上加元素,比如我们将要操控的飞船。因此,我们需要单独原创 2020-07-28 11:15:28 · 431 阅读 · 0 评论 -
Pygame 外星人入侵(1)
Pygame外星人入侵(1)引言:最近从零开始学习python,在看了一些视频后,认识到了看书的重要性,于是选择了基本口碑很不错的Python书籍,目前正在阅读的就是《Python编程:从入门到实践》这本,目前第一部分(基础知识)已经阅读完了,现在要进行第二部分中第一个项目的编写(共3个项目),那就外星人入侵。写这个博文的目的是记录自己学习pygame的一些过程。一、安装pygamePygame是我们编写游戏所需的包,书中给出了不同操作系统下的安装方法,这里我个人没有按照书上的方法来安装,而是在原创 2020-07-28 07:07:05 · 974 阅读 · 2 评论