Python__模块(界面-小游戏)__pygame(文档查询)

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 对象

【语法】
  • Rect(left, top, width, height)
  • Rect((left, top), (width, height))
  • Rect(object)

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 对象提供以下这些虚拟属性

  • x,y

  • top, left, bottom, right

  • topleft, bottomleft, topright, bottomright

  • midtop, midleft, midbottom, midright

  • center, centerx, centery

  • size, width, height

  • w,h

时间

Pygame中的时间以毫秒(1/1000秒)表示

pygame.time.get_ticks()

获取以毫秒为单位的时间

pygame.time.wait()

暂停程序一段时间

pygame.time.delay()

暂停程序一段时间

pygame.time.set_timer()

在事件队列上重复创建一个事件(创建一个定时器,每个一段时间,执行动作)

pygame.time.Clock()

创建一个对象来帮助跟踪时间(游戏以多大的帧数运行)

  • pygame.time.Clock.tick()     更新clock对象

  • pygame.time.Clock.get_time()  获取上一个tick中的时间

  • pygame.time.Clock.get_fps()  计算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”的模块中。


猜你喜欢

转载自blog.csdn.net/werdasooooo/article/details/134912380