用Pygame和Python做游戏-从入门到精通(6)

用Pygame和Python做游戏-从入门到精通(6)[python GUI教程]

用Python和Pygame写游戏-从入门到精通(6)

掌握了小小的像素,我们可以使用更加复杂一点的东西了,对,就是图像,无数的像素的集合~还记得上次我们为了生成的一张图片,花了无数时间,还好一般游戏不会在游戏的过程中动态生成图像,都是将画好的作为资源封装到游戏中。对2D游戏,图像可能就是一些背景、角色等,而3D游戏则往往是大量的贴图。

虽然是基础,这里还是要罗嗦一下,之前说的RBG图像,在游戏中我们往往使用RGBA图像,这个A是alpha,也就是表示透明度的部分,值也是0~255,0代表完全透明,255是完全不透明,而像100这样的数字,代表部分透明。你可以使用多种软件创建含有Alpha通道的图片,具体的网上查查吧……

这个世界上有很多存储图像的方式(也就是有很多图片格式),比如JPEG、PNG等,Pygmae都能很好的支持,具体支持的格式如下:

 

  • JPEG(Join Photograhpic Exper Group),极为常用,一般后缀名为.jpg或者.jpeg。数码相机、网上的图片基本都是这种格式。这是一种有损压缩方式,尽管对图片质量有些损坏,但对于减小文件尺寸非常棒。优点很多只是不支持透明。
  • PNG(Portable Network Graphics)将会大行其道的一种格式,支持透明,无损压缩。对于网页设计,软件界面设计等等都是非常棒的选择!
  • GIF 网上使用的很多,支持透明和动画,只是只能有256种颜色,软件和游戏中使用很少
  • BMP Windows上的标准图像格式,无压缩,质量很高但尺寸很大,一般不使用
  • PCX
  • TGA
  • TIF
  • LBM, PBM
  • XPM

使用Surface对象

对于Pygame而已,加载图片就是pygame.image.load,给它一个文件名然后就还给你一个surface对象。尽管读入的图像格式各不相同,surface对象隐藏了这些不同。你可以对一个Surface对象进行涂画、变形、复制等各种操作。事实上,屏幕也只是一个surface,pygame.display.set_mode就返回了一个屏幕surface对象。

创建Surfaces对象

一种方法就是刚刚说的pygame.image.load,这个surface有着和图像相同的尺寸和颜色;另外一种方法是指定尺寸创建一个空的surface,下面的语句创建一个256×256像素的surface:

1
bland_surface = pygame.Surface((256, 256))
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 用Pygame和Python做游戏-从入门到精通(6)