创建基本窗口
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对象却没有进行响应的变化,必须让两者同步才能达到缩放窗口的目的。