学习笔记——pygame最常用的15个模块

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()
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

别呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值