用Python和Pygame写游戏-从入门到精通(py2exe篇)
admin
2023-07-31 00:37:14
0

这次不是直接讲解下去,而是谈一下如何把我们写的游戏做成一个exe文件,这样一来,用户不需要安装python就可以玩了。扫清了游戏发布一大障碍啊!

perl,python,java等编程语言,非常好用,语法优美,功能强大;VB啥的,功能上编写的时候总有那么点不舒服的地方(个人见解),可是用户和受众极多,一个很大的原因就是:VB是微软提供的,可以很方便的编译(伪?)生成exe文件。有了exe,所有的Windows都能方便的使用了。

我们不能指望用户在玩我们的游戏之前都安装一个python和pygame,甚至还要装一些其他额外的库(比如上一章的gameobjects),这会吓退99%以上的人……所以把我们的游戏打包(注意是打包而不是编译,python毕竟是脚本程序)成一个可执行文件势在必行。

今天是父亲节啊,祝天下父亲快乐平安~

perl有perlcc(免费高效但配置极其复杂),perlapp(简单效果也不错但是收费)等工具;而对python来说,py2exe是不二之选,首先是免费的,而且压出来的文件,虽然不能和编译软件相比,还是不错的了。

到py2exe的官方网站下载安装包,注意要对应自己的python版本。

py2exe是需要写一个脚本进行打包的操作,使用下面这个专为pygame写就的脚本(参考py2exe官方),可以极大的方便打包操作,注意在使用前修改BuildExe里的各个参数。

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 #!python# -*- coding: gb2312 -*- # 这个脚本专为pygame优化,使用py2exe打包代码和资源至dist目录## 使用中若有问题,可以留言至:#  //eyehere.net/2011/python-pygame-novice-professional-py2exe/## 安装需求:#         python, pygame, py2exe 都应该装上 # 使用方法:#         1: 修改此文件,指定需要打包的.py和对应数据#         2: python pygame2exe.py#         3: 在dist文件夹中,enjoy it~ try:    from distutils.core import setup    import py2exe, pygame    from modulefinder import Module    import glob, fnmatch    import sys, os, shutilexcept ImportError, message:    raise SystemExit,  \”Sorry, you must install py2exe, pygame. %s\” % message # 这个函数是用来判断DLL是否是系统提供的(是的话就不用打包)origIsSystemDLL = py2exe.build_exe.isSystemDLLdef isSystemDLL(pathname):    # 需要hack一下,freetype和ogg的dll并不是系统DLL    if os.path.basename(pathname).lower() in (\”libfreetype-6.dll\”, \”libogg-0.dll\”, \”sdl_ttf.dll\”):        return 0    return origIsSystemDLL(pathname)# 把Hack过的函数重新写回去py2exe.build_exe.isSystemDLL = isSystemDLL # 这个新的类也是一个Hack,使得pygame的默认字体会被拷贝class pygame2exe(py2exe.build_exe.py2exe):    exe(py2exe.build_exe.py2exe):    地方(个人见解),可是用户和受众极多,一个很大的原因就是:VB是微软提供的,可以很方便的编译(伪?)生成exe文件。有了exe,所有的Windows都能方便的使用了。

我们不能指望用户在玩我们的游戏之前都安装一个python和pygame,甚至还要装一些其他额外的库(比如上一章的gameobjects),这会吓退99%以上的人……所以把我们的游戏打包(注意是打包而不是编译,python毕竟是脚本程序)成一个可执行文件势在必行。

今天是父亲节啊,祝天下父亲快乐平安~

perl有perlcc(免费高效但配置极其复杂),perlapp(简单效果也不错但是收费)等工具;而对python来说,py2exe是不二之选,首先是免费的,而且压出来的文件,虽然不能和编译软件相比,还是不错的了。

到py2exe的官方网站下载安装包,注意要对应自己的python版本。

py2exe是需要写一个脚本进行打包的操作,使用下面这个专为pygame写就的脚本(参考py2exe官方),可以极大的方便打包操作,注意在使用前修改BuildExe里的各个参数。

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 #!python# -*- coding: gb2312 -*- # 这个脚本专为pygame优化,使用py2exe打包代码和资源至dist目录## 使用中若有问题,可以留言至:#  //eyehere.net/2011/python-pygame-novice-professional-py2exe/## 安装需求:#         python, pygame, py2exe 都应该装上 # 使用方法:#         1: 修改此文件,指定需要打包的.py和对应数据#         2: python pygame2exe.py#         3: 在dist文件夹中,enjoy it~ try:    from distutils.core import setup    import py2exe, pygame    from modulefinder import Module    import glob, fnmatch    import sys, os, shutilexcept ImportError, message:    raise SystemExit,  \”Sorry, you must install py2exe, pygame. %s\” % message # 这个函数是用来判断DLL是否是系统提供的(是的话就不用打包)origIsSystemDLL = py2exe.build_exe.isSystemDLLdef isSystemDLL(pathname):    # 需要hack一下,freetype和ogg的dll并不是系统DLL    if os.path.basename(pathname).lower() in (\”libfreetype-6.dll\”, \”libogg-0.dll\”, \”sdl_ttf.dll\”):        return 0    return origIsSystemDLL(pathname)# 把Hack过的函数重新写回去py2exe.build_exe.isSystemDLL = isSystemDLL 

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...