Python现在很流行,语法简单,功能强大。很多同学想学Python!所以我们在这里为读者准备了高价值的Python学习视频教程,都放在文末。欢迎收藏!
创建Pygame窗口并响应用户输入
创建一个新文件夹alien _ invasion,并在文件夹中创建一个新的alien _ invasion.py文件,并输入以下代码。
左右移动
我们之前意识到向右移动,然后向左移动。逻辑差不多,代码就不贴了。
调整飞船的速度
目前每次执行while循环,飞船最多移动一个像素,所以我们可以在Settings中添加ship_speed_factor来控制飞船的速度。根据这个属性,我们将决定飞船在每个周期内最多可以移动多远。
设置:
船舶:
限制航天器的运动范围
如果玩家长时间按住箭头,飞船就会消失,那么飞船到了屏幕边缘怎么停止移动呢?这里只需要修改Ship类中的更新方法,添加一个逻辑判断即可。
重建
这里主要讲重构check_events()函数,将部分代码分成两部分,一部分用于KEYDOWN事件,一部分用于KEYUP事件。
游戏功能:
射击
接下来增加射击功能,让玩家按空键,子弹向上穿过屏幕,到达屏幕就消失了。
添加项目符号设置
向设置类添加一些项目符号属性。这里我们创建一个深灰色的项目符号,宽3像素,高15像素。子弹的速度略低于飞船。
创建项目符号类
分组存储项目符号
在定义了项目符号类和必要的设置之后,就可以编写代码了。玩家每按一次空键,就会射出一颗子弹。
首先,我们在外星人入侵中创建一个组来存储所有有效的子弹。
火
在这里,我们修改check_keydown_events()函数,以便在玩家按空键时监视事件。在这里,我们还需要修改update_screen()函数,以确保每次更新屏幕时都能重绘每个项目符号。
我们来看看效果:
删除缺失的项目符号
删除外星人入侵中丢失的子弹。
限制子弹数量
为了鼓励玩家带着目标射击,我们规定屏幕上同时只能有三颗子弹,我们只需要在每颗子弹创建之前检查没有消失的子弹数量是否少于三颗。
创建update_bullets()函数
为了使《外星人入侵》中的代码更简单,我们将检查子弹管理代码,并将其移动到游戏功能模块:
创建fire_bullet()函数
这里我们把发射子弹的代码移到一个单独的函数中:
添加外星人并检测碰撞
在我们完成新任务之前,我们给游戏添加一个快捷键Q:
创造第一个外星人
这和在这里制造宇宙飞船是一样的
创造一群外星人
在这里,我们先确定一条线可以容纳多少外星人,画多少条线。这里有很多代码修改,直接看效果:
流动外星人
我们之前创造了静止的外星人,现在需要让外星人动起来。这里我们在Settings类中设置alien移动的速度,然后通过Alien类中的更新方法实现移动
射杀外星人
如果要拍外星人,首先要检测两个编组成员之间是否有碰撞。在游戏中,碰撞意味着游戏元素重叠。
这里我们使用sprite.groupcollide()来检测两个组成员之间的冲突。
当子弹击中外星人时,需要立即知道,同时被击中的外星人会立即消失,所以我们需要在更新子弹位置后立即检测到碰撞。
结束游戏
这里我们还需要知道游戏何时结束,有以下几种情况:
所有的船只都被摧毁了
外星人到达屏幕底部
实际效果:
得分
最后我们会给游戏增加一个Play按钮,可以根据需要启动游戏,游戏结束后重启游戏。
我们还会实行计分制度,在球员水平提高的时候可以加快节奏。
添加播放按钮
在这里,我们可以将游戏初始化为非活动状态,当我们点击按钮时,我们将开始游戏。
Pygame中没有内置的创建按钮的方法。因此,我们可以通过创建一个按钮类来创建一个带有自己标签的实心矩形。
我们通过检测鼠标点击后的坐标是否与我们画的按钮发生碰撞来判断是否发生了点击事件。
提升
为了让游戏在玩家消灭敌人后更加困难和有趣,我们可以在Settings类中进行修改,增加静态初始值和动态初始值。
分数,排名,剩余飞船
打包成exe可执行文件
以上游戏开发完成后,你需要把它变成exe的可执行文件。我们使用pyinstaller,并参考安装步骤:
https://github.com/pyinstaller/pyinstaller/
文木福利
获取方法:添加python组839383765获取!
1.《python简单代码 10分钟学会用python写游戏!Python其实很简单!》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《python简单代码 10分钟学会用python写游戏!Python其实很简单!》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guoji/1292865.html