前两天在GameJam写程序做到收尾工作的时候,我们尝试使用Pyinstaller打包游戏文件,却出现了failed to execute function错误。我们尝试了许多办法都没有解决,最后迫于时间压力只上传了工程文件,就没有可执行的exe文件。在GameJam结束后,我又花了更多时间去了解这个问题,最后总结出两点,仅供大家参考。
1、Pygame如果有调用外部素材(图片、音乐、字体等),需要把素材文件(文件夹)复制到可执行文件的目录里。
2、如果在Pygame中调用了input()等需要依赖命令提示符的函数,在打包时不能隐藏命令提示符,可以使用-c参数,如:pyinstaller -c main.py。我们的游戏由于时间原因使用了input()来获取玩家的一些输入来节省开发时间,所以造成了打包后无法运行的问题。