使用pygame的一些心得

来源:互联网 发布:手机淘宝怎么改评价呀 编辑:程序博客网 时间:2024/04/29 06:20

关于抠图

    使用pygame制作游戏时,需要把素材中的图片加载进来。但通常一张图片是比较大的,包含许多不同的内容,为获取特定内容,一般是选择好矩形大小,再从图片中把需要部分抠下来。      但这里就涉及到了一个问题,抠下来的部分会包含图片背景,导致制作动画时显得十分生硬与难看,那么如何让特定部分与游戏背景很好地层叠显示呢?    经过查阅资料,发现一般有两个办法:    1、如果所需部分与原图背景有很明显的分界和颜色差异,可直接通过设置pygame中surface对象的colorkey属性为背景颜色RGB的值,然后在抠图时调用convert_alpha()即可把colorkey对应颜色的像素设为透明,从而使背景透明。    2、更方便的做法是在制作素材图片的时候,设置alpha通道。IF、TAG、PNG等格式支持alpha通道,它们不仅支持红绿蓝三色通道而且还支持黑白灰通道。通常都是利用Alpha通道来保存抠图或者透明背景的图片。阿尔法通道是一个8位的灰度通道,该通道用256级灰度来记录图像中的透明度信息,定义透明、不透明和半透明区域,其中黑表示透明,白表示不透明,灰表示半透明。      有alpha通道的图片在打开时并不能发现有什么不同,但当把图抠下来并渲染到游戏中时就会发现,所截部分是没有背景的,这样就省去了设置colorkey和转换的步骤,而且边缘会更清晰,效果更好,是一个更好的办法。  

关于封装成exe

    无论是使用pyinstaller还是py2exe,都不容易把程序用到的外部资源也打包在一起(需要更改资源打开方式),如果用到资源都不大的话,可以考虑把资源转换成base64直接使用,那么封装起来就十分方便与简洁了。    [如何用py2exe封装python程序](http://blog.csdn.net/brunoon5/article/details/53612627)
0 0