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()是交替显示的意思。