pygame(简介)
2D小游戏开发模块
pygame(了解)
2D开发
Python Pygame 是一款专门为开发和设计2D电子游戏而生的软件包。
支持 Windows,Linux,Mac,OS等操作系统。
Pygame 适用于2D游戏开发。
Python也提供开发3D游戏的软件包,如:Pyglet,Panda3D,PyOgre...
3D开发
SDL是1套开放源代码的跨平台多媒体开发库,使用C语言编写,它提供了多种控制图像,声音,输入/输出的函数。
Pygame可以看做是对SDL的封装,在SDL库基础上提供了多种Python的API接口。
目前SDL主要用于多媒体领域,比如开发游戏,模拟器,媒体,播放器等。
Panda3D底层用C++编写。
如:魔兽世界,文明帝国4,战地风云2...
应用领域
专业游戏开发工程师:C/C++,C#语言,更适用于游戏开发。
游戏引擎:Unity,UE4
-
Unity:移动端游戏开发(C#)王者荣耀,使命召唤...
-
UE4:电脑端游戏开发(C++)绝地求生·刺激战场..
FPS:频率值
频率值越大,画面越流畅,频率值越小,画面就会卡顿
一般接受最低值为30Hz,如果画面流畅需要FPS>60Hz
FPS越高,细节越好,体验也越好,文件容量也高。
pygame(安装)
方法1 |
pip install pygame |
方法2 |
下载地址:https://pypi.org/search/?q=pygame 解压文件:下载好的压缩文件解压到python目录的lib目录下 |
pygame(参数列表)
颜色 |
|
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() |
设置颜色的元素 |
窗口和屏幕显示 |
|
pygame.display.init() |
初始化 display 模块 |
pygame.display.quit() |
结束 display 模块 |
pygame.display.get_init() |
如果 display 模块已经初始化,返回 True |
pygame.display.set_mode() |
初始化一个准备显示的窗口或屏幕 语法: set_mode(size=(width,height),flags=0) flags参数:(创建各种窗口类型) |
pygame.FULLSCREEN |
创建一个全屏窗口 |
pygame.HWSURFACE |
硬件加速窗口,必须和FULLSCREEN同时使用 |
pygame.OPENGL |
OPENGL渲染窗口 |
pygame.RESIZEABLE |
可以改变大小的窗口 |
pygame.DOUBLEBUF |
双缓冲窗口 |
pygame.NOFRAME |
没有边框的窗口 |
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() |
设置屏幕保护程序是否可以运 |
【注释】 | |
Pygame 在任何时间内都只允许有一个显示界面。 使用 pygame.display.set_mode() 创建的新显示界面会自动替换掉旧的。 如果需要精确控制像素格式或显示分辨率,使用 pygame.display.mode_ok(),pygame.display.list_modes()和 pygame.display.Info()来查询显示界面相关的信息。 一旦 Surface 对象的显示界面被创建出来,这个模块的函数就只影响当前的显示界面。 如果该模块未初始化,Surface 对象也会变为“非法”。如果新的显示模式被设置,当前的 Surface 对象将会自动切换到新的显示界面。 |
绘制图形 |
|
pygame.draw.rect() |
绘制矩形 【语法】rect(Surface,color,rect,width) |
pygame.draw.polygon() |
绘制多边形 【语法】polygon(Surface,color,points,width) |
pygame.draw.circle() |
根据圆心和半径绘制圆形 【语法】circle(Surface,color,pos,radius,width=0) |
pygame.draw.ellipse() |
根据限定矩形绘制一个椭圆形 【语法】elipse(Surface,color,Rect,width=0) |
pygame.draw.arc() |
绘制弧线 【语法】 arc(Surface,color,Rect,Start_angle,stop_angle,width=1) |
pygame.draw.line() |
绘制线段 【语法】 line(Surface,color,start_pos,end_pos,width=1) |
pygame.draw.lines() |
绘制多条连续的线段 【语法】 lines(Surface,color,closed,pointlist,width=1) |
pygame.draw.aaline() |
绘制一条平滑的线段(抗锯齿) 【语法】 aaline(Surface,color,startpos,endpos,blend=1) |
pygame.draw.aalines() |
绘制多条连续的线段(抗锯齿) 【语法】 aalines(Surface,color,closed,pointlist,width=1) |
【注释】 | |
大部分函数用 width 参数指定图形边框的大小,如果 width = 0 则表示填充整个图形。 该模块用于在 Surface 对象上绘制一些简单的形状。 这些函数将渲染到任何格式的 Surface 对象上。 硬件渲染会比普通的软件渲染更耗时。 当这些函数在绘制时,必须暂时锁定 Surface 对象。 许多连续绘制的函数可以通过一次性锁定直到画完再解锁来提高效率。 |
事件event 用于处理事件与事件队列。 |
|
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() |
检测程序是否共享输入设备 |
pygame.event.post() |
放置一个新的事件到队列中 |
pygame.event.Event() |
创建一个新的事件对象 |
pygame.event.EventType() |
代表 SDL 事件的 Pygame 对象 |
事件类型 | 描述/成员属性 |
QUIT |
用户按下窗口的关闭按钮 none |
ATIVEEVENT |
Pygame被激活或者隐藏 gain,state |
KEYDOWN |
键盘按下 Unicode,key,mod |
KEYUP |
键盘松开 key,mode |
MOUSEMOTION |
鼠标移动 pos,rel,buttons |
MOUSEBUTTONDOWN |
鼠标按下 pos,button |
MOUSEBUTTONUP |
鼠标松开 pos,button |
JOYAXISMOTION |
游戏手柄(Joystick or pad)移动 joy,axis,value |
JOYBALLMOTION |
游戏球(Joy ball)移动 joy,axis,value |
JOYHATMOTION |
游戏手柄(Joystick)移动 joy,axis,value |
JOYBUTTONDOWN |
游戏手柄按下 joy,button |
JOYBUTTONUP |
游戏手柄松开 joy,button |
VIDEORESIZE |
Pygame窗口缩放 size,w,h |
VIDEOEXPOSE |
Pygame窗口部分公开(expose) none |
USEREVENT |
触发一个用户事件 事件代码 |
【注释】 | |
为了加快事件队列的处理速度, 可以使用 pygame.event.set_blocked() 函数阻止一些我们不关注的事件进入队列中。 |
字体 |
|
pygame.font.init() |
初始化字体模块 |
pygame.font.quit() |
还原字体模块 |
pygame.font.get_init() |
检查字体模块是否被初始化 |
pygame.font.get_default_font() |
获得默认字体的文件名 |
pygame.font.get_fonts() |
获取所有可使用的字体 |
pygame.font.match_font() |
在系统中搜索一种特殊的字体 |
pygame.font.SysFont() |
从系统字体库创建一个Font对象类 |
pygame.font.Font() |
从一个字体文件创建一个Font对象 |
通过使用 pygame.font.SysFont() |
函数从系统内加载字体 |
图像 |
|
pygame.image.load() |
从文件加载新图片 |
pygame.image.save() |
将图像保存到磁盘上 |
pygame.image.get_extended() |
检测是否支持载入扩展的图像格式 |
pygame.image.tostring() |
将图像转换为字符串描述 |
pygame.image.fromstring() |
将字符串描述转换为图像 |
pygame.image.frombuffer() |
创建一个与字符串描述共享数据的 Surface 对象 |
【注释】 | |
没有 Image 类;当一个图像被成功载入后,将转换为 Surface 对象。 Surface 对象允许你在上边画线、设置像素、捕获区域等。 Image 是 Pygame 相当依赖的一个模块。 支持载入的图像格式如下:jpg/png/gif/bmp/pcx/tga/tif/lbm/pbm/xpm |
鼠标 |
|
pygame.mouse.get_pressed() |
获取鼠标按键的情况(是否被按下 |
pygame.mouse.get_rel() |
获取鼠标一系列的活动 |
pygame.mouse.set_pos() |
设置鼠标光标的位置 |
pygame.mouse.set_visible() |
隐藏或显示鼠标光标 |
pygame.mouse.get_focused() |
检查程序界面是否获得鼠标焦点 |
pygame.mouse.set_cursor() |
设置鼠标光标在程序内的显示图像 |
pygame.mouse.get_cursor() |
获取鼠标光标在程序内的显示图像 |
【注释】 | |
任何时候鼠标移动都会产生一个 pygame.MOUSEMOTION 事件。 鼠标的活动被拆分成小而精确的事件。当鼠标运动时, 大量的运动事件会被放入相应的队列中等待处理。 没有及时清除掉一些运动事件是队列被塞满的主要原因。 如果鼠标光标被隐藏并且输入被当前显示器占用,鼠标会进入虚拟输入模式, 在此模式内,鼠标的相关活动不会因为屏幕的边界限制而停止。 调用 pygame.mouse.set_visible() 方法和 pygame.event.set_grab() 方法进行设置。 |
键盘 |
|
pygame.key.get_focused() |
当窗口获得键盘的输入焦点时返回 True |
pygame.key.get_pressed() |
获取键盘上所有按键的状态 |
pygame.key.get_mods() |
检测是否有组合键被按下 |
pygame.key.set_mods() |
临时设置某些组合键为被按下状态 |
pygame.key.set_repeat() |
控制重复响应持续按下按键的时间 |
pygame.key.get_repeat() |
获取重复响应按键的参数 |
pygame.key.name() |
获取按键标识符对应的名字 该模块包含处理与键盘操作相关的函数 |
"""
Constant ASCII 描述
---------------------------------
K_BACKSPACE \b 退格键(Backspace)
K_TAB \t 制表键(Tab)
K_CLEAR 清除键(clear)
K_RETURN \r 回车键(Enter)
K_PAUSE 暂停键(Pause)
K_ESCAPE ^[ 退出键(Escape)
K_SPACE 空格键(Space)
K_EXCLAIM ! 感叹号(exclaim)
K_QUOTEDBL ' 双引号(quotedbl)
K_HASH # 井号(hash)
K_DOLLAR $ 美元符号(dollar)
K_AMPERSAND & and 符号(ampersand)
K_QUOTE ’ 单引号(quote)
K_LEFTPAREN ( 左小括号(left parenthesis)
K_RIGHTPAREN ) 右小括号(right parenthesis)
K_ASTERISK * 星号(asterisk)
K_PLUS + 加号(plus sign)
K_COMMA , 逗号(comma)
K_MINUS - 减号(minus sign)
K_PERIOD . 句号(period)
K_SLASH / 正斜杠(forward slash)
K_0 0 0
K_1 1 1
K_2 2 2
K_3 3 3
K_4 4 4
K_5 5 5
K_6 6 6
K_7 7 7
K_8 8 8
K_9 9 9
K_COLON : 冒号(colon)
K_SEMICOLON ; 分号(semicolon)
K_LESS < 小于号(less-than sign)
K_EQUALS = 等于号(equals sign)
K_GREATER > 大于号(greater-than sign)
K_QUESTION ? 问号(question mark)
K_AT @ at 符号(at)
K_LEFTBRACKET [ 左中括号(left bracket)
K_BACKSLASH 反斜杠(backslash)
K_RIGHTBRACKET ] 右中括号(right racket)
K_CARET ^ 脱字符(caret)
K_UNDERSCORE _ 下划线(underscore)
K_BACKQUOTE ` 重音符(grave)
K_a a a
K_b b b
K_c c c
K_d d d
K_e e e
K_f f f
K_g g g
K_h h h
K_i i i
K_j j j
K_k k k
K_l l l
K_m m m
K_n n n
K_o o o
K_p p p
K_q q q
K_r r r
K_s s s
K_t t t
K_u u u
K_v v v
K_w w w
K_x x x
K_y y y
K_z z z
K_DELETE 删除键(delete)
K_KP0 0(小键盘)
K_KP1 1(小键盘)
K_KP2 2(小键盘)
K_KP3 3(小键盘)
K_KP4 4(小键盘)
K_KP5 5(小键盘)
K_KP6 6(小键盘)
K_KP7 7(小键盘)
K_KP8 8(小键盘)
K_KP9 9(小键盘)
K_KP_PERIOD . 句号(小键盘)
K_KP_DIVIDE / 除号(小键盘)
K_KP_MULTIPLY * 乘号(小键盘)
K_KP_MINUS - 减号(小键盘)
K_KP_PLUS + 加号(小键盘)
K_KP_ENTER \r 回车键(小键盘)
K_KP_EQUALS = 等于号(小键盘)
K_UP 向上箭头(up arrow)
K_DOWN 向下箭头(down arrow)
K_RIGHT 向右箭头(right arrow)
K_LEFT 向左箭头(left arrow)
K_INSERT 插入符(insert)
K_HOME Home 键(home)
K_END End 键(end)
K_PAGEUP 上一页(page up)
K_PAGEDOWN 下一页(page down)
K_F1 F1
K_F2 F2
K_F3 F3
K_F4 F4
K_F5 F5
K_F6 F6
K_F7 F7
K_F8 F8
K_F9 F9
K_F10 F10
K_F11 F11
K_F12 F12
K_F13 F13
K_F14 F14
K_F15 F15
K_NUMLOCK 数字键盘锁定键(numlock)
K_CAPSLOCK 大写字母锁定键(capslock)
K_SCROLLOCK 滚动锁定键(scrollock)
K_RSHIFT 右边的 shift 键(right shift)
K_LSHIFT 左边的 shift 键(left shift)
K_RCTRL 右边的 ctrl 键(right ctrl)
K_LCTRL 左边的 ctrl 键(left ctrl)
K_RALT 右边的 alt 键(right alt)
K_LALT 左边的 alt 键(left alt)
K_RMETA 右边的元键(right meta)
K_LMETA 左边的元键(left meta)
K_LSUPER 左边的 Window 键(left windows key)
K_RSUPER 右边的 Window 键(right windows key)
K_MODE 模式转换键(mode shift)
K_HELP 帮助键(help)
K_PRINT 打印屏幕键(print screen)
K_SYSREQ 魔术键(sysrq)
K_BREAK 中断键(break)
K_MENU 菜单键(menu)
K_POWER 电源键(power)
K_EURO 欧元符号(euro)
mod 属性,用于描述组合键状态。
Constant 描述
-------------------------
KMOD_NONE 木有同时按下组合键
KMOD_LSHIFT 同时按下左边的 shift 键
KMOD_RSHIFT 同时按下右边的 shift 键
KMOD_SHIFT 同时按下 shift 键
KMOD_LCTRL 同时按下左边的 ctrl 键
KMOD_RCTRL 同时按下右边的 ctrl 键
KMOD_CTRL 同时按下 ctrl 键
KMOD_LALT 同时按下左边的 alt 键
KMOD_RALT 同时按下右边的 alt 键
KMOD_ALT 同时按下 alt 键
KMOD_LMETA 同时按下左边的元键
KMOD_RMETA 同时按下右边的元键
KMOD_META 同时按下元键
KMOD_CAPS 同时按下数字键盘锁定键
KMOD_MODE 同时按下模式转换键
"""
常量 |
|
这个模块包含了 Pygame 定义的各种常量。 它的内容会被自动放入到 Pygame 模块的名字空间中。你可以使用 from pygame.locals import *将所有的 Pygame 常量导入。 各个常量的详细描述记录在 Pygame 各个模块的相关文档中。 比如 pygame.display.set_mode() 方法用到的 HWSURFACE 常量,你就可以在 display 模块的文档中找到详细的说明;事件类型在 event 模块的文档中可以找到。 当产生 KEYDOWN 或 KEYUP 事件时,key 属性描述具体哪个按键被按下,该值是以 K_ 开头的常量(MOD_ 开头的常量表示各种组合键被按下),在 key 模块的文档中可以找到;最后,TIME_RESOLUTION 被定义在 time 模块中。 |
媒体播放mixer 用于加载和播放声音的pygame模块 |
|
pygame.mixer.init |
初始化混音器模块 |
pygame.mixer.pre_init |
预设混音器初始化参数 |
pygame.mixer.quit |
卸载混音器模块 |
pygame.mixer.get_init |
测试混音器是否初始化 |
pygame.mixer.stop |
停止播放所有通道 |
pygame.mixer.pause |
暂停播放所有通道 |
pygame.mixer.unpause |
恢复播放 |
pygame.mixer.fadeout |
淡出停止 |
pygame.mixer.set_num_channels |
设置播放频道的总数 |
pygame.mixer.get_num_channels |
获取播放频道的总数 |
pygame.mixer.set_reserved |
预留频道自动使用 |
pygame.mixer.find_channel |
找到一个未使用的频道 |
pygame.mixer.get_busy |
测试混音器是否正在使用类 |
pygame.mixer.Sound |
从文件或缓冲区对象创建新的Sound对象 |
pygame.mixer.Channel |
创建一个Channel对象来控制播放 |
矩形坐标rect是用于存储矩形坐标的 Pygame 对象 |
|
【语法】 |
|
pygame.Rect.copy() |
拷贝 Rect 对象 |
pygame.Rect.move() |
移动 Rect 对象 |
pygame.Rect.move_ip() |
原地移动 Rect 对象 |
pygame.Rect.inflate() |
放大和缩小 Rect 对象的尺寸 |
pygame.Rect.inflate_ip() |
原地放大和缩小 Rect 对象的尺寸 |
pygame.Rect.clamp() |
将一个 Rect 对象移动到另一个 Rect 对象的中心 |
pygame.Rect.clamp_ip() |
原地将一个 Rect 对象移动到另一个 Rect 对象的中心 |
pygame.Rect.clip() |
获取两个 Rect 对象互相重叠的部分 |
pygame.Rect.union() |
将两个 Rect 对象合并 |
pygame.Rect.union_ip() |
原地将两个 Rect 对象合并 |
pygame.Rect.unionall() |
将多个 Rect 对象合并 |
pygame.Rect.unionall_ip() |
原地将多个 Rect 对象合并 |
pygame.Rect.fit() |
按照一定的宽高比调整 Rect 对象 |
pygame.Rect.normalize() |
翻转 Rect 对象(如果尺寸为负数) |
pygame.Rect.contains() |
检测一个 Rect 对象是否完全包含在该 Rect 对象内 |
pygame.Rect.collidepoint() |
检测一个点是否包含在该 Rect 对象内 |
pygame.Rect.colliderect() |
检测两个 Rect 对象是否重叠 |
pygame.Rect.collidelist() |
检测该 Rect 对象是否与列表中的任何一个矩形有交集 |
pygame.Rect.collidelistall() |
检测该 Rect 对象与列表中的每个矩形是否有交集 |
pygame.Rect.collidedict() |
检测该 Rect 对象是否与字典中的任何一个矩形有交集 |
pygame.Rect.collidedictall() |
检测该 Rect 对象与字典中的每个矩形是否有交集 |
Rect 对象提供以下这些虚拟属性 |
|
|
时间Pygame中的时间以毫秒(1/1000秒)表示 |
|
pygame.time.get_ticks() |
获取以毫秒为单位的时间 |
pygame.time.wait() |
暂停程序一段时间 |
pygame.time.delay() |
暂停程序一段时间 |
pygame.time.set_timer() |
在事件队列上重复创建一个事件(创建一个定时器,每个一段时间,执行动作) |
pygame.time.Clock() |
创建一个对象来帮助跟踪时间(游戏以多大的帧数运行)
|
音频 |
|
pygame.mixer.music.load() |
载入一个音乐文件用于播放 |
pygame.mixer.music.play() |
开始播放音乐流 |
pygame.mixer.music.rewind() |
重新开始播放音乐 |
pygame.mixer.music.stop() |
结束音乐播放 |
pygame.mixer.music.pause() |
暂停音乐播放 |
pygame.mixer.music.unpause() |
恢复音乐播放 |
pygame.mixer.music.fadeout() |
淡出的效果结束音乐播放 |
pygame.mixer.music.set_volume() |
设置音量 |
pygame.mixer.music.get_volume() |
获取音量 |
pygame.mixer.music.get_busy() |
检查是否正在播放音乐 |
pygame.mixer.music.set_pos() |
设置播放的位置 |
pygame.mixer.music.get_pos() |
获取播放的位置 |
pygame.mixer.music.queue() |
将一个音乐文件放入队列中,并排在当前播放的音乐之后 |
pygame.mixer.music.set_endevent() |
当播放结束时发出一个事件 |
pygame.mixer.music.get_endevent() |
获取播放结束时发送的事件 |
【注释】 | |
Pygame 中播放音乐的模块和 pygame.mixer 模块是密切联系的。 使用音乐模块去控制在调音器上的音乐播放。 音乐(music)播放和声音(sound)播放的不同之处在于音乐是流式的, 并且绝对不会在一开始就把一个音乐文件全部载入。 调音系统在工作刚开始时仅支持单音乐流。 |
处理图像Surface模块提供处理图像的其它方法 |
|
pygame.Surface.blit() |
将一个图像(Surface对象) 绘制到另一个图像上 |
pygame.Surface.convert() |
修改图像(Surface对象)的像素格式 |
pygame.Surface.fill() |
使用纯色填充Surface对象 |
pygame.Surface.scroll() |
复制并移动Surface对象 |
pygame.Surface.set_alpha() |
设置整个图像的透明度 |
pygame.Surface.get_at() |
获取一个像素的颜色值 |
pygame.Surface.set_at() |
设置一个像素的颜色值 |
pygame.Surface.get_palette() |
获取Surface对象8位索引的调色板 |
pygame.Surface.map_rgb() |
将一个RGBA颜色转换位映射的颜色值 |
pygame.Surface.set_clip() |
设置该Surface对象的当前剪切区域 |
pygame.Surface.subsurface() |
根据父对象创建一个新的子Surface对象 |
pygame.Surface.get_offset() |
获取子Surface对象在父对象种的偏移位置 |
pygame.Surface.get_size() |
获取Surface对象的尺寸 |
【 transform 】对加载,创建后的图像进行一系列操作,比如调整图像大小,旋转图片 |
|
pygame.transform.scale() |
图片缩放 |
pygame.transform.rotate() |
图片旋转 |
pygame.transform.rotozoom() |
以角度旋转图像,同时将图像缩小或放大至指定的倍数 |
精灵 |
|
self.image |
加载要显示的精灵图片,控制图片大小和填充色 |
self.rect |
精灵图片显示在哪个位置 |
Sprite.update() |
刷新精灵图,使其相应效果生效 |
Sprite.add() |
添加精灵图到精灵组中(groups) |
Sprite.remove() |
从精灵组中删除选中的精灵图 |
Sprite.kill() |
删除精灵组中全部的精灵 |
Sprite.alive() |
判断某个精灵是否属于精灵组 |
【注释】 | |
当游戏中有大量的精灵时,操作它们将变得复杂,此时通过构建精灵容器(group)类,也就是精灵组来统一,管理这些精灵。 【构建方法】 group=pygame.sprite.Group() # 创建精灵组 group.add(sprte_one) # 向组内添加一个精灵 |
|
多种碰撞检测方法 |
|
pygame.sprite.collide_rect() |
两个精灵之间的矩形检测,即矩形区域是否有交汇,返回一个布尔值。 |
pygame.sprite.collide_circle() |
两个精灵之间的圆形检测,即圆形区域是否有交汇,返回一个布尔值。 |
pygame.sprite.collide_mask() |
两个精灵之间的像素蒙版检测,更为精准的一种检测方法。 |
pygame.sprite.spritecollide() |
精灵和精灵族之间的矩形碰撞检测,一个组内的所有精灵会逐一地对另外一个单个精灵进行碰撞检测,返回值是一个列表。 |
pygame.sprite.spritecollideany() |
精灵和精灵组之间的矩形碰撞检测,上述函数的变体,当发生碰撞时,返回组内的一个精灵,无碰撞发生时,返回None。 |
pygame.sprite.groupcollide() |
检测在两个组之间发生碰撞的所有精灵,它返回值是一个字典,将第一组中发生碰撞的精灵作为键,第二组中发生碰撞的精灵作为值。 |
顶层Pygame 最顶层的包 |
|
pygame.init() |
初始化所有导入的 pygame 模块。 |
pygame.quit() |
卸载所有导入的 pygame 模块。 |
pygame.error() |
标准 pygame 异常模块。 |
pygame.get_error() |
获得当前错误信息。 |
pygame.set_error() |
设置当前错误信息。 |
pygame.get_sdl_version() |
获得 SDL 的版本号。 |
pygame.get_sdl_byteorder() |
获得 SDL 的字节顺序。 |
pygame.register_quit() |
注册一个函数,这个函数将在 pygame 退出时被调用。 |
pygame.encode_string() |
对 unicode 或字节对象编码。 |
pygame.encode_file_path() |
将 unicode 或字节对象编码为文件系统路径。 |
【注释】 |
|
pygame 包是可供使用的最顶层的包。 Pygame 被分成许多子模块,但是并不会影响程序使用 Pygame。 为了方便,在 pygame 中绝大多数的顶级变量被放入名为“pygame.locals”的模块中。 |