Pygame

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类似的,我们还有MOUSEBUTTONDOWNMOUSEBUTTONUP两个事件,看名字就明白是什么意思了。很多时候,你只需要知道鼠标点下就可以了,那就可以不用上面那个比较强大(也比较复杂)的事件了。它们的参数为:

  • button – 看清楚少了个s,这个值代表了哪个按键被操作
  • pos – 和上面一样

处理键盘事件

键盘和游戏手柄的事件比较类似,为KEYDOWNKEYUP,下面有一个例子来演示使用方向键移动一些东西。

KEYDOWN和KEYUP的参数描述如下:

  • key – 按下或者放开的键值,是一个数字,估计地球上很少有人可以记住,所以Pygame中你可以使用K_xxx来表示,比如字母a就是K_a,还有K_SPACEK_RETURN等。
  • mod – 包含了组合键信息,如果mod & KMOD_CTRL是真的话,表示用户同时按下了Ctrl键。类似的还有KMOD_SHIFTKMOD_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()是交替显示的意思。
原文地址:https://www.cnblogs.com/chengxuyuandashu/p/3751822.html