创建基本窗口

Pygame中的基本图像结构是pygame.Surface,它代表着游戏中所需要处理的全部图像对象。前面示例中创建的基本窗口也是一个Surface对象。

在对pygame进行初始化之后,就可以创建基本窗口了。这个窗口是通过pygame.display.set_mode(resolution, flags, depth)来创建的。其中resolution是所创建的窗口的分辨率,是一个由两个整型值组成的元组,分别代表窗口的宽度和高度,计算单位是“像素”。

flags则是表示窗口中渲染所使用的方法,如果不需要特殊的渲染方法和窗口状态,可以传递0值。flags支持使用以下值来指示窗口的渲染和状态。

  • pygame.FULLSCREEN,创建一个全屏显示。
  • pygame.DOUBLEBUF,创建一个双缓冲显示,一般与硬件加速和OpenGL搭配使用。
  • pygame.HWSURFACE,创建一个硬件加速显示,只可以在全屏显示中使用。
  • pygame.OPENGL,创建一个使用OpenGL渲染的显示。
  • pygame.RESIZABLE,创建一个可变大小的窗口。
  • pygame.NOFRAME,创建一个没有边框的窗口。

如果需要使用多个值,可以使用|来将多种状态连接起来,例如:pygame.FULLSCREEN | pygame.HWSURFACE

depth表示画面的颜色深度,这项一般可以省略不给出,pygame会根据当前系统自动选择一个最有效率的颜色深度来使用。

如果需要在程序运行过程中切换窗口和全屏,可以直接调用.set_mode()来设置新的窗口状态。如果将窗口设置为了可变大小模式,那么就需要在事件处理中响应pygame.locals.VIDEORESIZE事件来重新设置窗口状态,否则窗口虽然大小变化了,但是窗口所对应的Surface对象却没有进行响应的变化,必须让两者同步才能达到缩放窗口的目的。