一、pygame事件
1.简介
pygame事件可以处理游戏中的各种事情。其实在前两节的博客中,我们已经使用过他们了。如下是pygame的完整事件列表:
QUIT,ACTIVEEVENT,KEYDOWN,KEYDOWN,MOUSEMOTION,MOUSEBUTTONUP,MOUSEBUTTONDOWN,JOYAXISMOTION,
JOYBALLMOTION,JOYHATMOTION........
更多的事件可以去查pygame的文档。http://www.pygame.org/docs/index.html
查看pygame的文档是一种非常好的学习方式。
2.实时事件循环
pygame中的事件处理是放在一个实时的循环中来完成的。将代码都放在一个while True的循环中,但是这样会造成死循环,所以在里面加一句sys.exit()来退出。
for event in pygame.event.get()
上面的代码将会创建当前等待处理的事件的一个列表,然后使用for循环来遍历里面的事件。这样,我们将会根据事件产生的顺序依次地进行不同的操作。常见的事件是按键按下,按键释放以及鼠标移动。通常需要最先处理QUIT事件(在用户关闭窗口的时候会产生该事件。)
while True:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
3.键盘事件
键盘事件包括最典型的keyup 和 keydown 当按键按下的时候响应KEYDOWN事件,按键弹起的时候响应KEYDOWN事件。通常可以设置一个事件变量,然后根据keyup或者keydown给它赋不同的值。