标签为 [python] 的文章

Pygame-将打飞机游戏打包成 exe

发现很多朋友在写了 pygame 的打飞机游戏之后,都很想打包成 exe 文件分享给别人玩。但是在打包的过程中,可能遇到一些问题。今天我就来整理一下 pygame 打包 exe 的一些注意事项。 在这里,我介绍两种较为常见的打包 exe 工具,cx_freeze 和 py2exe。先说 cx_freeze: cx_freeze 打包的过程比较简单,安装好之后运行一条命令就可以了。基本步骤就是: 1.搜索并下载符合你 python 版本的 cx_freeze 当前最新版本: https://pypi.python.org/pypi/cx_Freeze 一定要选择符合的版本,包括操作系统、系统位数、python版本。 2.安装 3. ......

Pygame-屡败屡战

打飞机游戏,我们已经做得差不多了。今天要再加上两个功能,让它看上去更完整:显示分数、重新开始。这样,玩家才能一次接一次地玩下去。 要显示分数,首先得有一个变量记录分数: 1 score = 0当打中敌机的时候,把分数增加。为了达到这个目的,修改一下之前的checkHit函数,让它和checkCrash一样,返回一个bool值,表示是否发生了碰撞: 1234567891011121314151617 def checkHi ......

Pygame-GAME OVER

继续我们的打飞机游戏。完成了子弹和敌机之间的碰撞检测之后,自然还要来处理敌机与本体之间的碰撞检测,这决定了游戏是否结束。 之前我们没有把plane作为一个对象来处理,现在为了能更方便地做碰撞检测,我们还是要把它封装一下。这和我们之前对bullet和enemy所做的操作类似。 12345678910111213141516171819202122232425262728293031 class Plane:     def restart(self):         self.x = ......

Pygame-命中目标

现在,我们的“打飞机”游戏已经到了万事俱备只欠东风的阶段:有了子弹也有了敌机,但它们之间还没有办法擦出火花。这节课的内容就是让玩家可以真正的“打”飞机。 我们判断子弹命中飞机的依据很简单:就是子弹的位置在飞机图片的内部。这不需要很精确,因为在快速的游戏过程中,人眼也无法分辨细微的差别。来看下面这张示意图:按照我们的设定(为了简化,假设子弹的长宽忽略不计),当子弹的坐标(b.x, b.y)在飞机的图片范围,也就是(e.x, e.y)到(e.x+e.width, e.y+e.height)所围成的矩形当中时,就可以认定是命中了。也就是满足: ......

Pygame-一大波飞机

之前我们单个飞机已经完成了在屏幕上方区域内随机出现,并且到底底部后重新回上方的功能。现在要做的,仅仅是把一架敌机换成一组敌机: 12345 enemies = [] for i in range(5):     enemies.append(Enemy())创建5个Enemy的对象,把它们添加到一个叫做enemies的list中。 然后,在主循环里,去处理每一架敌机的运动: 12345 for e in enemies:  ......