python项目--python中的事件

目录

    • pygame事件
      • 一、简介
      • 实时事件循环
      • 1.系统退出
      • 2.键盘事件
      • 3.鼠标事件

pygame事件

一、简介

     pygame事件可以处理游戏中的各种事情。

     如下是pyg
QUIT, ACTIVEEVENT, KEYDOWN , KEYDOWN, MOUSEMOTION, MOUSEBUTTONUP,MOUSEBUTTONDOWN,JOYAXISMOTION, JOYBALLMOTION,JOYHATMOTION........

更多的事件可以去查pygame的文档描述

查看pygame的文档是一种非常好的学习方式。

实时事件循环

pygame中的事件处理是放在一个实时的循环中来完成的。将代码都放在一个while True的循环中。

1.系统退出

但是这样会造成死循环,所以在里面加一句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()        

2.键盘事件

  • 键盘事件包括最典型的keyup 和 keydown 当按键按下的时候响应KEYDOWN事件,按键弹起的时候响应KEYUP事件。通常可以设置一个事件变量,然后根据keyup或者keydown给它赋不同的值。
while True:
   for event in pygame.event.get():
       if event.type == QUIT:
           sys.exit()
       elif event.type == KEYDOWN:
           key_flag = True
       elif event.type == KEYUP:
           key_flag = False
  • 默认的话pygame不会重复地去响应一个被一直按住的键,只是在按键第一次被按下的时候响应一次
  • 如果需要重复响应一个按键的话下面的操作:
pygame.key.set_repeat(10)
#参数是一个以毫秒为单位的值

(其实也可以通过设置一个变量flag来响应一个一直按住的键)

3.鼠标事件

  • pygame支持一些鼠标事件,他们包括MOUSEMOTION,MOUSEBUTTONUP,MOUSEBUTTONDOWN.
    这些事件都有不同的属性
'''MOUSEMOTION中包含了一些属性:event.pos,event.rel,event.buttons'''
for event in pygame.event.get():
        if event.type == MOUSEMOTION:
             mouse_x,mouse_y = event.pos
             move_x,move_y = event.rel

'''MOUSEBUTTONDOWN里面的属性:'''
event.type == MOUSEBUTTONDOWN:
            mouse_down = event.button
            mouse_down_x,mouse_down_y = event.pos
            
'''MOUSEBUTTONUP里面的属性:'''
event.type == MOUSEBUTTONUP:
            mouse_up = event.button
            mouse_up_x,mouse_up_y = event.pos

最后文章是转载博文

你可能感兴趣的:(#,python项目:pygame,考研复试)