1、Color类
class pygame.Color
Pygame 中用于描述颜色的对象。Color(name) -> Color Color(r, g, b, a) -> Color Color(rgbvalue) -> Color
方法 & 属性
方法 | 描述 |
---|---|
pygame.Color.r() | 获取或设置 Color 对象的红色值 |
pygame.Color.g() | 获取或设置 Color 对象的绿色值 |
pygame.Color.b() | 获取或设置 Color 对象的蓝色值 |
pygame.Color.a() | 获取或设置 Color 对象的 alpha 值 |
pygame.Color.cmy() | 获取或设置 Color 对象表示的 CMY 值 |
pygame.Color.hsva() | 获取或设置 Color 对象表示的 HSVA 值 |
pygame.Color.hsla() | 获取或设置 Color 对象表示的 HSLA 值 |
pygame.Color.i1i2i3() | 获取或设置 Color 对象表示的 I1I2I3 值 |
pygame.Color.normalize() | 返回 Color 对象的标准化 RGBA 值 |
pygame.Color.correct_gamma() | 应用一定的伽马值调整 Color 对象 |
pygame.Color.set_length() | 设置 Color 对象的长度(成员数量) |
pygame.Color.lerp() | 返回给定颜色的线性插值 |
pygame.Color.premul_alpha() | 返回一个颜色,其中r,g,b组件已经乘以了alpha |
pygame.Color.update() | 设置颜色的元素 |
(函数详解见官网:https://www.pygame.org/docs/)
Pygame 使用 Color 类表示 RGBA 颜色值,每个颜色值的取值范围是 0 ~ 255
。允许通过基本的算术运算创造新的颜色值,支持转换为其他颜色空间,例如 HSV 或 HSL,并让你调整单个颜色通道。当没有给出 alpha 的值默认是 255(不透明)。
“RGB值”可以是一个颜色名,一个 HTML 颜色格式的字符串,一个 16 进制数的字符串,或者一个整型像素值。HTML 格式是 “#rrggbbaa”,其中 “rr”,“gg”,“bb”,“aa” 都是 2 位的 16 进制数。代表 alpha 的 “aa” 是可选的。16 进制数的字符串组成形式为 “0xrrggbbaa”,当然,其中的 “aa” 也是可选的。
2、display模块
pygame.display
Pygame 中用于控制窗口和屏幕显示的模块。
注:为了适应语境,display 在该文档中有时翻译为“显示”,有时翻译为“显示界面”。
函数
函数 | 描述 |
---|---|
pygame.display.init() | 初始化 display 模块 |
pygame.display.quit() | 结束 display 模块 |
pygame.display.get_init() | 如果 display 模块已经初始化,返回 True |
pygame.display.set_mode() | 初始化一个准备显示的窗口或屏幕 |
pygame.display.get_surface() | 获取当前显示的 Surface 对象 |
pygame.display.flip() | 更新整个待显示的 Surface 对象到屏幕上 |
pygame.display.update() | 更新部分软件界面显示 |
pygame.display.get_driver() | 获取 Pygame 显示后端的名字 |
pygame.display.Info() | 创建有关显示界面的信息对象 |
pygame.display.get_wm_info() | 获取关于当前窗口系统的信息 |
pygame.display.list_modes() | 获取全屏模式下可使用的分辨率 |
pygame.display.mode_ok() | 为显示模式选择最合适的颜色深度 |
pygame.display.gl_get_attribute() | 获取当前显示界面 OpenGL 的属性值 |
pygame.display.gl_set_attribute() | 设置当前显示模式的 OpenGL 属性值 |
pygame.display.get_active() | 当前显示界面显示在屏幕上时返回 True |
pygame.display.iconify() | 最小化显示的 Surface 对象 |
pygame.display.toggle_fullscreen() | 切换全屏模式和窗口模式 |
pygame.display.set_gamma() | 修改硬件显示的 gama 坡道 |
pygame.display.set_gamma_ramp() | 自定义修改硬件显示的 gama 坡道 |
pygame.display.set_icon() | 修改显示窗口的图标 |
pygame.display.set_caption() | 设置当前窗口标题 |
pygame.display.get_caption() | 获取当前窗口标题 |
pygame.display.set_palette() | 为索引显示设置显示调色板 |
pygame.display.get_num_displays() | 返回显示的数量 |
pygame.display.get_window_size() | 返回窗口或屏幕的大小 |
pygame.display.get_allow_screensaver() | 返回屏幕保护程序是否允许运行 |
pygame.display.set_allow_screensaver() | 设置屏幕保护程序是否可以运行 |
(函数详解见官网:https://www.pygame.org/docs/)
Pygame 的 display 事实上可以有几种初始化的方式。默认情况下,display 作为一个软件驱动的帧缓冲区。除此之外,你可以使用硬件加速和 OpenGL 支持的特殊模块。这些是通过给 pygame.display.set_mode()
传入 flags 参数来控制的。
Pygame 在任何时间内都只允许有一个显示界面。使用 pygame.display.set_mode()
创建的新显示界面会自动替换掉旧的。如果需要精确控制像素格式或显示分辨率,使用 pygame.display.mode_ok()
,pygame.display.list_modes()
,和 pygame.display.Info()
来查询显示界面相关的信息。
一旦 Surface 对象的显示界面被创建出来,这个模块的函数就只影响当前的显示界面。如果该模块未初始化, Surface 对象也会变为“非法”。如果新的显示模式被设置,当前的 Surface 对象将会自动切换到新的显示界面。
当一个新的显示模式被设置,会在 Pygame 的事件队列中放入几个相关事件。当用于希望关闭程序时,pygame.QUIT
事件会被发送;当显示界面获得和失去焦点时,窗口会得到 pygame.ACTIVEEVENT
事件;如果显示界面设置了 pygame.RESIZABLE
标志,那么当用户调整窗口尺寸时,pygame.VIDEORESIZE
事件会被发送;硬件显示指当接收到 pygame.VIDEOEXPOSE
事件时,将部分需要被重绘的窗口直接绘制到屏幕上。
一些显示环境拥有自动拉伸所有窗口的选项。当该选项被启动时,自动拉伸会扭曲 Pygame 窗口的外观。
3、draw 模块
pygame.draw
Pygame 中绘制图形的模块。
函数
函数 | 描述 |
---|---|
pygame.draw.rect() | 绘制矩形 |
pygame.draw.polygon() | 绘制多边形 |
pygame.draw.circle() | 根据圆心和半径绘制圆形 |
pygame.draw.ellipse() | 根据限定矩形绘制一个椭圆形 |
pygame.draw.arc() | 绘制弧线 |
pygame.draw.line() | 绘制线段 |
pygame.draw.lines() | 绘制多条连续的线段 |
pygame.draw.aaline() | 绘制抗锯齿的线段 |
pygame.draw.aalines() | 绘制多条连续的线段(抗锯齿) |
(函数详解见官网:https://www.pygame.org/docs/)
该模块用于在 Surface 对象上绘制一些简单的形状。这些函数将渲染到任何格式的 Surface 对象上。硬件渲染会比普通的软件渲染更耗时。
大部分函数用 width
参数指定图形边框的大小,如果 width = 0
则表示填充整个图形。
所有的绘图函数仅能在 Surface 对象的剪切区域生效。这些函数返回一个 Rect,表示包含实际绘制图形的矩形区域。
大部分函数都有一个 color 参数,传入一个表示 RGB 颜色值的三元组,当然也支持 RGBA 四元组。其中的 A 是 Alpha 的意思,用于控制透明度。不过该模块的函数并不会绘制透明度,而是直接传入到对应 Surface 对象的 pixel alphas 中。color 参数也可以是已经映射到 Surface 对象的像素格式中的整型像素值。
当这些函数在绘制时,必须暂时锁定 Surface 对象。许多连续绘制的函数可以通过一次性锁定直到画完再解锁来提高效率。
4、event模块
pygame.event
用于处理事件与事件队列的 Pygame 模块。
函数
函数 | 描述 |
---|---|
pygame.event.pump() | 让 Pygame 内部自动处理事件 |
pygame.event.get() | 从队列中获取事件 |
pygame.event.poll() | 从队列中获取一个事件 |
pygame.event.wait() | 等待并从队列中获取一个事件 |
pygame.event.peek() | 检测某类型事件是否在队列中 |
pygame.event.clear() | 从队列中删除所有的事件 |
pygame.event.event_name() | 通过 id 获得该事件的字符串名字 |
pygame.event.set_blocked() | 控制哪些事件禁止进入队列 |
pygame.event.set_allowed() | 控制哪些事件允许进入队列 |
pygame.event.get_blocked() | 检测某一类型的事件是否被禁止进入队列 |
pygame.event.set_grab() | 控制输入设备与其他应用程序的共享 |
pygame.event.get_grab() | 检 |