Pygame的几个模块

  这篇博客主要是从功能上介绍几个Pygame的模块,没有深入到代码细节。大部分内容来自《Python基础教程》。

  • pygame

  pygame模块会自动导入其他Pygame模块,所以如果用了 import pygame,就能自动访问其他模块,比如pygame.display等。

  pygame模块包括Surface函数(和一些其他工具),它可以返回一个新的Surface对象。Surface对象就是一个有确定尺寸的空图像,可以用来进行图像绘制和移动。移动(blit方法)只意味着将内容从一个表面转移到另外一个表面上面。单词blit是从属于block transfer的缩写BLT衍生而来。

  init函数式Pygame游戏的核心。它必须在进入游戏的主事件循环之前调用,它会自动初始化其他所有模块。

  如果需要捕捉Pygame特有的错误时,还需要error类。

  • pygame.locals

  pygame.locals模块包括在你自己的模块作用域内使用的名字(变量),还包括事件类型、键和视频模式等的名字。在导入所有内容(from pygame.locals import *)时它用起来是很安全的。如果你知道自己需要的内容,也可以导入更加具体的内容(比如 from pygame.locals import FULLSEREEN)。

  • pygame.display

  pygame.display模块包括处理Pygame显示方式的函数,其中包括普通窗口和全屏模式。比如有这些函数:

   flip:更新显示。一般来说,当修改当前屏幕的时候需要经过两个步骤。首先,需要对get_surface函数返回的Surface对象进行所有需要的修改。然后调用pygame.display.flip更新显示  以反映你的修改。

   update:在只想更新屏幕一部分的时候使用update函数,而不是flip函数。它可以从RenderUpdates类的draw方法中返回的矩形列表一起使用。

   set_mode:设定显示的类型和尺寸。会返回一个Surface对象,代表了在桌面上出现的那个窗口,三个参数第一个为元祖,代表分 辨率(必须);第二个是一个标志位,具体意思见下  表,如果不用什么特性,就指定0;第三个为色深。

标志位功能
FULLSCREEN 创建一个全屏窗口
DOUBLEBUF 创建一个“双缓冲”窗口,建议在HWSURFACE或者OPENGL时使用
HWSURFACE 创建一个硬件加速的窗口,必须和FULLSCREEN同时使用
OPENGL 创建一个OPENGL渲染的窗口
RESIZABLE 创建一个可以改变大小的窗口
NOFRAME 创建一个没有边框的窗口

   set_caption:设定Pygame程序的标题,当游戏以窗口模式运行时,显示为窗口的标题。

   get_surface:在调用pygame.display.flip或者pygame.display.blit前返回一个可用于画图的Surface对象。

  • pygame.font

  pygame.font模块包括Font函数。字体对象用于表现不同的字体,可以用于将文本生成为可以再Pygame中用作普通图像的图像。

  • pygame.sprite

  pygame.sprite模块包括两个非常重要的类:Sprite和Group。

  Sprite类是所有可视游戏对象的基类,有过游戏编程经验甚至只是玩过游戏的人应该都知道“精灵”这个词,其实Sprite就是精灵。为了实现自己的游戏对象,需要子类化Sprite,覆盖它的构造函数以设定image和rect属性(决定Sprite的外观和放置的位置),再覆盖update方法,在Sprite需要更新的时候可以调用。

  Group类的实例(和它的子类)用作Sprite对象的容器。一般来说,使用group类还是不错的作法。在一些简单的游戏中,只要创建名为sprites或者allsprites或者其他类似的组,然后将所有的Sprite对象添加到上面即可。当调用Group对象的update方法时,它就会自动调用所有Sprite对象的update方法。Group对象的clear方法用于清理它包含的所有Sprite对象(使用回调函数实现清理),draw方法可以用于绘制所有的Sprite对象。

  • pygame.mouse

  关于鼠标的模块,可以设置参数、获取信息等。如可以使用pygame.mouse.set_visible来设置光标是隐藏还是可见,用pygame.mouse.get_pos来获取鼠标的位置。

  • pygame.event

  pygame.event模块会追踪鼠标单击、鼠标移动、按键按下和释放等事件。使用pygame.event.get可以获取最近事件列表。

  • pygame.image

  这个模块用于处理保存在GIF、PNG或JPEG等文件内的图像。pygame.image.load函数用来读取图像文件,并且创建包括该图像的Surface对象。

posted @ 2012-06-28 02:38  李林克斯  阅读(5610)  评论(0编辑  收藏  举报