使用pygame的一些心得

关于抠图

    使用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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值