Python外星人入侵(源码及打包教程)


写在前面

很久以前就跟着书上写完了外星人入侵的小游戏,但是在打包的时候遇到了各种问题,打包完成开始游戏时总是黑屏然后闪退,前两天看到有位同学写完这个项目发布的博客,我在评论区留下了自己魔改了一点的…收获了40多个赞,于是我又搜索了一下如何才能正确打包,现在分享给大家。

Title

1:源码及文件

百度网盘 提取码:hr64

2:解决黑屏问题

在scoreboard.py中,将 self.font = pygame.font.SysFont(None,48) 修改为 self.font = pygame.font.SysFont('arial',24) 48和24是字号,可以自行调整,48好像有点大我就改成了24.

3:如何打包

需要安装pyinstaller模块,安装方式: 在命令行窗口输入: pip install pyinstaller 然后利用cd命令切换到代码所在目录 输入以下命令,然后回车: pyinstaller -Fw alien_invasion.py -p alien.py -p bullet.py -p button.py -p game_functions.py -p game_stats.py -p scoreboard.py -p settings.py -p ship.py -F:打包成单个可执行文件 -w:在运行游戏时不显示命令行窗口 -i xxx.ico:可以自定义图标 打包完成的文件存放在dist目录下 将images和musics文件夹拷贝进去即可运行 打包时会生成xxx.spec文件 再次打包时只需执行以下命令: pyinstaller -F xxx.spec

4:解决打包过大问题

由于pyinstaller打包时会将所有安装过的模块都打包进去,所以可执行文件会显得十分臃肿,第一次打包完成有30M,挺吓人的,解决办法就是建立一个虚拟环境(总不能买一台新电脑吧…)。 win加R打开cmd,cd到自己想要保存虚拟环境的目录,输入以下命令: py -3 -m venv venv venv就是虚拟环境的名字 然后输入venv\Scripts\activate激活虚拟环境 在虚拟环境下使用pip安装用到的第三方包,比如本例中只用到了pygame,所以只需要pip install pygame即可。 另外还需要重新安装pyinstaller(pip install pyinstaller),不然会自动调用电脑中现存的模块,打包出来依然很臃肿。 最后利用cd命令切换到py文件存放目录进行打包,把文件拷贝到虚拟环境目录下也可。 deactivate退出虚拟环境,无用的虚拟环境可以直接删除。 ps:pipenv提供的虚拟环境也很好用,需要先: pip install pipenv安装该模块 然后在命令行窗口输入: pipenv install创建新的虚拟环境,接着: pipenv shell进入虚拟环境 或者省略pipenv install,因为没有虚拟环境的时候会自动创建一个,剩下的步骤同上。 如果下载速度过慢可以使用以下命令: pipenv install --skip-lock 包名 最后,pipenv --rm删除已有的虚拟环境。

写在后面

最后打包完成有8M多,这个大小应该还可以了。。。。 希望不会被律师函警告吧。。。。 CSDN链接:https://blog.csdn.net/ljc545w/article/details/106629519