快速入门pygame
安装pygame模块
pip install pygame游戏的初始化和退出
初始化
pygame.init() # 导入并初始化所有pygame模块,使用其他pygame模块之前必须先调用init方法退出
pygame.quit() # 卸载所有的pygame模块,在游戏结束之前调用,清空内存实例
import pygame pygame.init() pygame.quit()
游戏中的坐标系
左上角顶点为原点
x轴水平向右,逐渐增加
y轴垂直向下,逐渐增加
在游戏中,所有的可见元素全部都是以矩形区域来描述位置,主要参数有(x,y,(width,height))
矩形区域
pygame.Rect
pygame.Rect.move([x,y])
移动矩形区域
显示函数
pygame.display
pygame.display.set_mode()
初始化窗口或屏幕以进行显示
pygame.display.get_surface()->Surface
获取对当前设置的显示Surface的引用
pygame.display.flip()
更新完整屏幕
pygame.display.update()
更新部分屏幕
pygame.display.get_desktop_sizes()
获取活动桌面的大小
pygame.display.toggle_fullscreen()
切换全屏与窗口状态
pygame.display.set_caption(标题)
更改窗口标题
pygame.display.set_icon(文件路径)
更改窗口图标
事件处理方法
pygame.event
pygame.event.get()
从队列获取事件
pygame.event.wait()
等待队列中的单个事件,默认为任意事件
event.type
获取事件的类型
键盘事件
pygame.key
pygame.pygame.KEYDOWN
键盘按下事件
pygame.KEYUP
键盘弹起事件
key常量
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 bracket)
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)
组合键的常量定义
KMOD_NONE
木有同时按下组合键
KMOD_LSHIFT
同时按下左边的 shift 键
KMOD_RSHIFT
同时按下右边的 shift 键
KMOD_SHIFT
同时按下 shift 键
KMOD_CAPS
同时按下大写字母锁定键
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_NUM
同时按下数字键盘锁定键
KMOD_MODE
同时按下模式转换键
pygame.key.get_pressed()
获取键盘上所有按键的状态
返回一个由布尔值组成的序列
pygame.key.get_mods()
检测是否有组合键被按下
pygame.key.set_repeat()
控制重复响应持续按下按键的时间
鼠标事件
pygame.mouse
pygame.MOUSEBUTTONDOWN
鼠标按下事件
pygame.MOUSEBUTTONUP
鼠标松开事件
pygame.MOUSEMOTION
鼠标移动事件
pygame.mouse.set_visible(False)
设置界面鼠标是否可见,False为不可见
pygame.mouse.get_pos()
获取光标位置
字体对象
pygame.font
pygame.font.get_fonts()
获取所有可用字体名
pygame.font.get_default_font()
获取默认字体的文件名
pygame.font.SysFont()
创建系统文字对象
pygame.font.Font()
创建自定义字体对象
图像处理方法
pygame.image
图像作为Surface对象加载
pygame.image.load(文件名)
从文件中加载图像
pygame.Surface.set_colorkey()
设置当前Surface对象的colorkeys,当绘制Surface对象时,将所有与colorkeys相同的颜色值绘制为透明
声音处理
pygame.mixer
控制声音的模块
pygame.mixer.Sound(文件名)
从文件或缓冲区对象创建一个新的Sound对象
pygame.mixer.Sound.play
开始播放声音
pygame.mixer.Sound.stop
停止声音播放
pygame.mixer.Sound.fadeout
淡出后停止声音播放
pygame.mixer.Sound.set_volume
设置此声音的播放音量[0.0-1.0]
pygame.mixer.Sound.get_volume
获取播放音量
pygame.mixer.Sound.get_num_channels
计算此声音播放的次数
pygame.mixer.Sound.get_length
获取Sound的长度
pygame.mixer.Sound.get_raw
返回Sound样本的字节串副本。
pygame.mixer.music
控制音乐的模块
pygame.mixer.music.load(filename)
载入一个音乐文件用于播放
如果已经有音乐在播放,那么前一个音乐会被停止
pygame.mixer.music.play()
开始播放音乐
pygame.mixer.music.rewind()
从新开始播放
pygame.mixer.music.stop()
结束音乐播放
pygame.mixer.music.pause()
暂停音乐播放
pygame.mixer.music.unpause()
回复音乐播放
pygame.mixer.music.set_endevent(type)
在播放结束后发出一个事件
Surface对象
pygame.Surface
pygame中用于表示图像的对象
pygame.Surface.blit()
将一个Surface对象绘制到另一个Surface对象上
pygame.Surface.blits()
pygame.Surface.convert()
修改图像的格式
如果原来包含alpha通道,转换后不会保留
pygame.Surface.convert_alpha()
修改图像的格式
会保留alpha通道
时间模块
pygame.time
pygame.time.get_ticks()
以毫秒为单位获取时间
pygame.time.wait()
暂停一段时间
pygame.time.delay()
暂停一段时间,使用处理器而不是休眠,所以比上一个要准确
pygame.time.set_timer()
在实践中队列上重复创建一个事件
pygame.time.Clock()
创建一个对象来帮助跟踪事件
pygame.time.Clock.tick()
更新clock对象
用来控制帧率
transform模块
pygame.transform
移动像素或调整像素大小的操作,返回新的Surface
一些变换是破坏性的,会丢失像素数据,例如调整大小和旋转
pygame.transform.flip()
使垂直和水平翻转
pygame.transform.scale()
调整大小到新的分标率
pygame.transform.rotate()
旋转图像
精灵对象
pygame.sprite
用作游戏中不同类型对象的基类
在对Sprite进行子类化时,请务必在Sprite添加到Groups之前调用基本初始值设定项。 例如:
pygame.sprite.Sprite.update()
控制精灵行为的方法,默认不执行任何操作,可以重写此方法
pygame.sprite.Sprite.add()
将精灵添加到组中
pygame.sprite.Sprite.remove()
从组中删除精灵
pygame.sprite.Group()
用于保存和管理多个Sprite对象的容器类
pygame.sprite.Group.sprites
此组包含的Sprite列表
您也可以从组中获取迭代器,但在修改它时不能对组进行迭代。
pygame.sprite.Group.copy
复制组
pygame.sprite.Group.add
将Sprite添加到此组
pygame.sprite.Group.remove
从组中删除Sprite
pygame.sprite.Group.has
测试一个Group是否包含Sprite
pygame.sprite.Group.update
在包含的Sprite上调用update方法
没有返回值
pygame.sprite.Group.draw
blit Sprite的图像
pygame.sprite.Group.clear
在Sprites上绘制背景
pygame.sprite.Group.empty
删除所有Sprite
pygame.sprite.collide_rect_ratio()
使用rects检测两个精灵直接的碰撞
摄像头对象
pygame.camera
pygame.camera.list_cameras()
返回一个可用的摄像头列表
pygame.camera.Camera()
加载一个摄像头
pygame.camera.Camera.start
打开摄像头、初始化然后开始捕捉画面
pygame.camera.Camera.stop
结束摄像头工作,还原并关闭摄像头
pygame.camera.Camera.get_controls
获得当前用户设定的值
pygame.camera.Camera.set_controls
修改当前摄像头设置(如果摄像头支持的话)
pygame.camera.Camera.get_size
返回被记录的图像的尺寸
pygame.camera.Camera.query_image
确认一帧图像是否准备好
pygame.camera.Camera.get_image
捕获一张图像并转换为一个 Surface 对象
pygame.camera.Camera.get_raw
以字符串的形式返回一张未修改的图像
pygame.camera.Camera.set_controls()
最后更新于