pygame
.
init
(
) #初始化pygame,为使用硬件做准备
screen
=
pygame
.
display
.
set_mode
(
(
640
,
480
)
,
0
,
32
)
#创建了一个窗口,set_mode会返回一个Surface对象,代表了在桌面上出现的那个窗口,三个参数第一个为元祖,代表分 辨率(必须);第二个是一个标志位,如果不用什么特性,就指定0;第三个为色深。当我们把第二个参数设置为FULLSCREEN时,就能得到一个全屏窗口了
pygame
.
display
.
set_caption
(
"Hello, World!"
)
#设置窗口标题
background
=
pygame
.
image
.
load
(
background_image_filename
)
.
convert
(
) #加载并转换图像
mouse_cursor
=
pygame
.
image
.
load
(
mouse_image_filename
)
.
convert_alpha
(
)
#加载并转换图像,图像要有
有Alpha通道,保留了Alpha 通道信息(可以简单理解为透明的部分)
screen.blit(background,(0,0))
#将背景图画上去,blit是个重要函数,第一个参数为一个Surface对象,第二个为左上角位置。
x,y=pygame.mouse.get_pos() #获得鼠标位置
ygame.display.update()
#刷新一下画面,画完以后一定记得用update更新一下,否则画面一片漆黑。
event=pygame.event.wait()
#等待事件发生,获得事件的名称
处理鼠标事件
MOUSEMOTION事件会在鼠标动作的时候发生,它有三个参数:
- buttons – 一个含有三个数字的元组,三个值分别代表左键、中键和右键,1就是按下了。
- pos – 就是位置了……
- rel – 代表了现在距离上次产生鼠标事件时的距离
和MOUSEMOTION类似的,我们还有MOUSEBUTTONDOWN和MOUSEBUTTONUP两个事件,看名字就明白是什么意思了。很多时候,你只需要知道鼠标点下就可以了,那就可以不用上面那个比较强大(也比较复杂)的事件了。它们的参数为:
- button – 看清楚少了个s,这个值代表了哪个按键被操作
- pos – 和上面一样
处理键盘事件
键盘和游戏手柄的事件比较类似,为KEYDOWN和KEYUP,下面有一个例子来演示使用方向键移动一些东西。
KEYDOWN和KEYUP的参数描述如下:
- key – 按下或者放开的键值,是一个数字,估计地球上很少有人可以记住,所以Pygame中你可以使用K_xxx来表示,比如字母a就是K_a,还有K_SPACE和K_RETURN等。
- mod – 包含了组合键信息,如果mod & KMOD_CTRL是真的话,表示用户同时按下了Ctrl键。类似的还有KMOD_SHIFT,KMOD_ALT。
- unicode – 代表了按下键的Unicode值,这个有点不好理解,真正说清楚又太麻烦,游戏中也不太常用,说明暂时省略,什么时候需要再讲吧。
过滤掉一些我们不感兴趣的事件:pygame.event.set_blocked(事件名)
与之相对的,我们使用pygame.event.set_allowed()来设定允许的事件。
产生时间
my_event
=
pygame
.
event
.
Event
(
KEYDOWN
,
key
=
K_SPACE
,
mod
=
0
,
unicode
=
u
' '
)
#你也可以像下面这样写,看起来比较清晰(但字变多了……)
my_event
=
pygame
.
event
.
Event
(
KEYDOWN
,
{
"key"
:
K_SPACE
,
"mod"
:
0
,
"unicode"
:
u
' '
}
)
pygame
.
event
.
post
(
my_event
)
pygame.display.update()是将数据画到前面显示,而pygame.display.flip()是交替显示的意思。