pygame常用函数
pygame 会用这些函数就够了
借鉴了pygame的官方文档和一些中译版,对于我们实际写代码时较常用的一些函数和方法进行了整理
前15个可以说是较为常用的函数,后面的由于不太常用就有所省略。
本文档只是作为参考,具体使用还请参照官方文档。如果整理的哪里有问题还希望大家指正。
- pygame.sprite:基本游戏对象
- pygame,event:处理事件
- pygame.key:键盘按键
- pygame:顶层模块
- pygame.time:时间模块
- pygame.diaplay:控制窗口显示
- pygame.Rect:图像矩形模块
- pygame.Color:颜色模块
- pygame.image:图片模块
- pygame.Surface:表示图像
- pygame.mixer:声音模块
- pygame.draw:绘制图像
- pygame.font:字体模块
- pygame.mixer.music:音乐模块
- pygame.mouse:鼠标移动
- pygame.BufferProxy:缓冲对象
- pygame.cdrom:音频光盘
- pygame.PixelArray:像素数组
- pygame.cursor:鼠标光标
- pygame.scrap:剪切板
- pygame.andarray:音频采样
- pygame.transform:改变形态
- pygame.tests:测试模块
- pygame.freetype:计算机字体
- pygame.joystick:外接设备
- pygame.locals:常量定义
- pygame.surfarray:访问像素
- pygame.Overlay:图像叠加
1. pygame.sprite
该类是pygame中处理基本游戏对象类的模块
pygame.sprite.Sprite
:可见游戏对象的简单基类pygame.sprite.Sprite.update
:更新状态pygame.sprite.Sprite.add
:加到组中pygame.sprite.Sprite.remove
:从组中删除pygame.sprite.Sprite.kill
:从所有组中删除pygame.sprite.Sprite.groups
:包含此Sprite的组列表
pygame.sprite.DirtySprite
:具有更多属性和功能的Sprite的子类pygame.sprite.Group
:保存和管理多个Sprite对象的容器类pygame.sprite.Group.copy
:复制组pygame.sprite.Group.add
:添加到该组pygame.sprite.Group.remove
:从组中删除pygame.sprite.Group.has
:检测是否包含pygame.sprite.Group.update
:更新状态pygame.sprite.Group.draw
:绘制图像pygame.sprite.Group.empty
:删除所有
pygame.sprite.collide_rect
:使用rects检测两个sprite之间的碰撞pygame.sprite.collode_rect_ratio
:使用按比例缩放的rects检测碰撞pygame.sprite.collide_circle
:使用圆来检测碰撞pygame.sprite.collide_circle_ratio
:使用按比例缩放的圆检测pygame.sprite.collide_mask
:使用蒙版检测碰撞
2. pygame.event
该类是pygame中处理事件与事件队列的模块
pygame.event.pump
:让其内部自动处理事件pygame.event.get
:从队列中获取事件pygame.event.poll
:从队列中获取一个事件pygame.event.wait
:等待并从队列中获取一个事件pygame.event.peek
:检测某个类型事件是否在队列中pygame.event.clear
:从队列中删除所有事件pygame.event.set_allowed
:控制哪些事件禁止进入队列pygame.event.set_blocked
:控制哪些事件允许进入队列pygame.event.post
:放置一个新事件进入队列pygame.event.Event
:创建一个新的事件对象- 事件种类:
- QUIT:退出
- KEYDOWN:按下按键
- KEYUP:松开按键
- MOUSEMOTION:鼠标移动
- 其他游戏杆、游戏手柄、追踪球事件
- 支持自定义事件
3. pygame.key
该类是pygame处理与键盘有关的模块
pygame.key.get_focused
:窗口获得键盘输入焦点返回Truepygame.key.get_pressed
:获取键盘所有按键的状态- key属性:pygame预定义的键盘上的键位
- mod属性:pygame预定义的组合键
4. pygame
该类为最顶层的模块
pygame.init
:初始化导入所有pygame模块pygame.quit
:卸载所有导入的模块
5. pygame.time
该类是pygame中用于时间管理模块
pygame.time.get_ticks
:以毫秒为单位获取时间pygame.time.wait
:暂停程序一段时间pygame.time.delay
:暂停程序一段时间pygame.time.Colck
:创建一个对象来帮助或更新时间pygame.time.Clock.tick
:更新clock对象
6. pygame.display
该类是pygame中用于控制窗口和屏幕显示的模块
pygame.display.init
:初始化模块pygame.display.quit
:取消初始化pygame.display.get_init
:判断是否初始化成功pygame.display.set_mode
:初始化一个准备显示的窗口或者屏幕pygame.display.set_mode(resolution=(0,0), flags=0, depth=0)
- resolution:传入屏幕的长宽,若为 0 则默认当前屏幕分辨率
- flags:控制显示类型 可以多种类型用管道符 ‘ | ’ 组合
- pygame.FULLSCREEN 创建一个全屏显示
- pygame.DOUBLEBUF 双缓冲模式
- pygame.HWSURFACE 硬件加速,仅在FULLSCREEN下可以使用
- pygame.RESIZABLE 创建一个可调整尺寸的窗口
- pygame.NOFRAME 创建一个没有边框和控制按钮的窗口
- depth:深度参数,一般不传值
pygame.display.get_surface
:获取当前显示的 Surface 对象pygame.display.flip
:将完整待显示的 Surface 对象更新到屏幕上pygame.display.update
:更新部分软件界面显示pygame.display.iconify
:最小化显示 Surface 对象pygame.display.toggle_fullscreen
:切换全屏显示和窗口显示pygame.display.set_icon
:更改显示窗口的系统头像pygame.display.set_caption
:设置当前窗口标题pygame.display.get_caption
:获取当前窗口标题
7. pygame.Rect
该类是pygame中直接操作对象外界矩形的模块
pygame.Rect
:创建矩形对象pygame.Rect(left, top, width, height)
:根据左上角坐标和长宽创建矩形pygame.Rect((left, top), (width, height))
:根据左上角坐标和长宽创建矩形- 该对象具有用来移动和对齐的参数
- x, y
- top, left, bottom, right
- topleft, bottomleft, topright, bottomright
- midtop, midleft, midbottom, midright
- center, centerx, centery
- size, width, height
- w,h
pygame.Rect.copy
:复制矩形pygame.Rect.move
:移动矩形pygame.Rect.move(x, y)
:传入偏移量
pygame.Rect.contains
:测试一个矩形是否在另一个矩形内部,传入矩形对象pygame.Rect.collidepoint
:测试一个点是否在矩形内pygame.Rect.colliderect
:测试两个矩形是否重叠
8. pygame.Color
该类是pygame中用于描述颜色的模块
pygame.Color
:返回一个颜色- Color(name):传入名称
- Color(r, g, b, a):传入rgba参数
- Color(rgbvalue):传入rgb参数
pygame.Color.r
:获取或设置其红色值pygame.Color.g
:获取或设置其绿色值pygame.Color.b
:获取或设置其蓝色值pygame.Color.a
:获取或设置其alpha通道值pygame.Color.cmy
:获取或设置其 cmy (青、洋红和黄) 值pygame.Color.normalize
:返回标准化 RGBA 值
9. pygame.image
该类是pygame中处理图像传输的模块
pygame.image.load
:从文件中加载新图像- 传入文件路径和名称
- 支持 JPG、PNG、GIF、BMP、PCX、TGA、TIF、LBM、PBM、XPM格式
pygame.image.save
:将图像保存到本地- 传入 Surface 对象和路径
- 支持BMP、TGA、PNG、JPEG格式
10. pygame.Surface
该类是pygame中用于表示图像的模块
pygame.Surface
:创建对象pygame.Surface((width, height), flags=0, depth=0, masks=None)
pygame.Surface((width, height), flags=0, Surface)
pygame.Surface.blit
:将一个图像绘制到另一个上方pygame.Surface.convert
:修改像素格式pygame.Surface.copy
:拷贝对象pygame.Surface.fill
:使用纯色填充对象pygame.Surface.scroll
:移动对象
11. pygame.mixer
该类是pygame中用来加载和播放声音的模块,默认有8个声道
pygame.mixer.init
:初始化模块pygame.mixer.stop
:停止播放所有声道pygame.mixer.pause
:暂停播放所有声道pygame.mixer.unpause
:恢复暂停播放所有声道pygame.mixer.fadeout
:停止前淡出所有声音- 传入时间参数,设置淡出时间
12. pygame.draw
该类是pygame中用于绘制图形的模块
pygame.draw.rect
:绘制矩形pygame.draw.rect(Surface, color, Rect, width=0)
- Surface:绘制在 Surface 对象上
- color:传入 RGB 三元组或 RGBA 四元组
- width:指定边框宽度,0 表示填充该矩形
pygame.draw.polygon
:绘制多边形pygame.draw.polygon(Surface, color, pointlist, width=0)
- pointlist:指定多边形的各个顶点
pygame.draw.circle
:绘制圆形pygame.draw.circle(Surface, color, pos, radius, width=0)
- pos:圆心位置
- radius:半径
pygame.draw.ellipse
:绘制椭圆pygame.draw.ellipse(Surface, color, Rect, width=0)
- Rect:椭圆外切矩形
pygame.draw.arc
:绘制弧线pygame.draw.arc(Surface, color, Rect, start_angle, stop_angle, width=1)
- Rect:弧线所在椭圆外切矩形
- angle:弧线开始和结束位置
pygame.draw.line
:绘制线段pygame.draw.line(Surface, color, start_pos, end_pos, width=1)
pygame.draw.lines
:绘制多条线段pygame.draw.lines(Surface, color, closed, pointlist, width=1)
- pointlist:一系列点
- closed:若为 True 则绘制首尾相连
13. pygame.font
该类是pygame中加载和表示字体的模块
pygame.font.init
:初始化pygame.font.quit
:退出pygame.font.get_init
:判断是否初始化pygame.font.get_font
:获取所有可使用的字体pygame.font.match_font
:在系统中搜索字体pygame.font.SysFont
:从系统字体库冲创建一个对象pygame.font.Font
:从字体文件中创建一个对象pygame.font.Font.render
:在新的 Surface 对象上绘制文本pygame.font.Font.size
:确定字体大小pygame.font.Font.set_underline
:是否加下划线pygame.font.Font.set_bold
:是否加粗pygame.font.Font.set_italic
:是否设置为斜体
14. pygame.mixer.music
该类是pygame中控制音乐播放的模块,对于MP3格式的支持受限,建议OGG格式
pygame.mixer.music.load
:载入一个音乐文件pygame.mixer.music.play
:开始播放pygame.mixer.music.play(loops=0, start=0.0)
- loops:控制再循环几次,若为3则一共播放4次
- start:控制从哪里开始播放,单位为秒
pygame.mixer.music.rewind
:重新开始播放pygame.mixer.music.stop
:结束播放pygame.mixer.music.pause
:暂停播放pygame.mixer.music.unpause
:继续播放pygame.mixer.music.set_voiume
:设置音量pygame.mixer.music.get_volume
:获取音量pygame.mixer.music.set_pos
:设置播放位置- 传入一个浮点数,控制从什么时候开始播放
pygame.mixer.music.queue
:将一个应用文件放入队列,排在当前播放的音乐之后pygame.mixer.music.set_endevent
:设置播放结束事件pygame.mixer.music.get_endevent
:获取播放结束事件
15. pygame.mouse
该类是pygame中与鼠标操作相关的模块
pygame.mouse.get_pressed
:判断鼠标按键是否被按下pygame.mouse.get_pos
:获取鼠标光标位置pygame.mouse.set_pos
:设置鼠标光标位置pygame.mouse.set_visible
:设置鼠标光标是否隐藏pygame.mouse.set_cuisor
:设置鼠标光标在程序内的显示图像pygame.mouse.get_cursor
:获取鼠标光标在程序内的显示图像
16. pygame.BufferProxy
该类是 Surface
对象通过数组协议导出的一个缓冲对象
pygame.BufferProxy.parent
:返回该 BufferProxy 的 Surface 对象, 或者调用 BufferProxy 的对象pygame.BufferProxy.length
:返回缓冲区的长度,单位是字节。类似于len字段pygame.BufferProxy.length
:将缓冲区的数据拷贝并返回,为str或bytes对象pygame.BufferProxy.write
:将字节写入缓冲区
17. pygame.cdrom
该类是pygame中使用音频cdrom的模块, cdrom 即 Compact Disc Read-only Memory 只读光盘
pygame.cdrom.init
:初始化模块pygame.cdrom.quit
:退出模块pygame.cdrom.get_init
:判断是否初始化成功,成功返回 truepygame.cdrom.get_count
:返回 cd 驱动器的个数pygame.cdrom.CD
:管理驱动的类pygame.cdrom.CD.init
:初始化pygame.cdrom.CD.quit
:退出pygame.cdrom.CD.get_init
:判断是否完成初始化pygame.cdrom.CD.play
:开始播放pygame.cdrom.CD.stop
:停止播放pygame.cdrom.CD.pause
:暂停播放pygame.cdrom.CD.resume
:恢复播放
18. pygame.PixelArray
该类为pygame中直接处理访问像素的模块
pygame.PixelArray.surface
:获取使用的 surface 对象pygame.PixelArray.itemsize
:返回像素数组项字节大小pygame.PixelArray.make_surface
:根据当前 PixelArray 创建新的 surface 对象pygame.PixelArray.extract
:从 PixelArray 中提取传递颜色
19. pygame.cursors
该类是pygame中使用光标资源的模块
pygame.cursors.compile
:又纯字符串创建二进制光标数据pygame.cursors.load_xbm
:由xbm文件载入光标数据
20. pygame.scrap
该类是pygame中用于支持剪切板的模块
pygame.scrap.init
:初始化pygame.scrap.get
:从剪切板获取指定类型数据pygame.scrap.put
:将数据放入剪切板pygame.scrap.contains
:检测是否获得
21. pygame.sndarray
该类是pygame中访问音频采样数据的模块
pygame.sndarray.array
:将一个音频采样复制到一个数组pygame.sndarray.make_sound
:将一个数组变成一个音频对象
22. pygame.transform
该类是pygame中用于改变surface形态的模块
pygame.transform.flip
:垂直和水平翻转pygame.transform.scale
:调整大小到新的分辨率pygame.transform.rotata
:旋转图像
23. pygame.tests
该类是pygame中用于单元测试的模块
pygame.tests.run
:运行测试套件
24. pygame.freetype
该类是pygame中用来加载和呈现计算机字体的模块,不常用
25. pygame.joystick
该类是pygame中与游戏杆、游戏手柄、追踪球交互的模块,详情参考文档
26. pygame.locals
该类是pygame中定义各种常量的模块
27. pygame.surfarray
该类是pygame中使用接口访问 surface 像素的模块,不常用
28. pygame.Overlay
该类是pygame中用于处理视频叠加图像的模块,不常用