第二节 pygame中的事件

事件:能够产生影响的操作叫做事件。

一、鼠标事件

概念:用鼠标控制的事件,我们称之为鼠标事件

1、MOUSEBUTTONDOWN事件

检测鼠标按键按下:

event.type == pygame.MOUSEBUTTONDOWN

鼠标事件通常通常作为if条件语句中的条件。

MOUSEBUTTONDOWN全部都是大写。

2、MOUSEBUTTONDOWN事件使用方法

#导库
import pygame,sys
......
while True:
    for event in pygame.event.get():               #循环检测
        if event.type == pygame.KEYDOWN:          #检测键盘按键按下
            print("这是键盘事件")
        elif event.type == pygame.MOUSEBUTTONDOWN:  #检测鼠标按下
            print("这是鼠标事件")         #执行语句

3、MOUSEBUTTONUP事件

检测鼠标按键按下:

event.type == pygame.MOUSEBUTTONUP

鼠标事件通常通常作为if条件语句中的条件。

MOUSEBUTTONUP全部都是大写。

4、MOUSEBUTTONUP事件使用方法

#导库
import pygame,sys
......
while True:
    for event in pygame.event.get():               #循环检测
        if event.type == pygame.KEYDOWN:          #检测键盘按键按下
            print("这是键盘事件")
        elif event.type == pygame.MOUSEBUTTONUP:  #检测鼠标抬起
            print("这是鼠标事件")         #执行语句

二、键盘事件

概念:用键盘控制角色移动,我们称之为键盘事件

1、键盘事件KEYDOWN

KEYDOWN事件语法如下:

event.type == pygame.KEYDOWN

用途:检测按键是否被按下。

pygame.KEYDOWN中KEYDOWN需要大写。

2、KEYDOWN事件使用方法

#导库
import pygame,sys
......
while True:
    for event in pygame.event.get():               #循环检测
        if event.type == pygame.QUIT:          #退出事件判断
            pygame.quit()                  #窗口退出
            sys.exit()                  #系统退出
        elif event.type == pygame.KEYDOWN:  #检测按键按下
            print("已经按下按键")         #执行语句

检测键盘按下作为if语句的条件,按下键盘后的程序作为条件语句的执行语句。

3、键盘事件KEYUP

KEYUP事件语法如下:

event.type == pygame.KEYUP

用途:检测按键是否被抬起。

pygame.KEYUP中KEYUP需要大写。

4、KEYUP事件使用方法

#导库
import pygame,sys
......
while True:
    for event in pygame.event.get():               #循环检测
        if event.type == pygame.QUIT:          #退出事件判断
            pygame.quit()                  #窗口退出
            sys.exit()                  #系统退出
        elif event.type == pygame.KEYUP:  #检测按键抬起
            print("已经释放了按键")         #执行语句

检测键盘抬起作为if语句的条件,抬起键盘后的程序作为条件语句的执行语句。

5、精确的检测某个按键的方法

精确的检测某个按键的语法如下:

event.key == pygame.K_按键名 或 event.type == ord("字符")

例如:检测按键1:event.type == pygame.K_1

检测按键a:event.type == ord("a")

注意:按键名前加大写的K和_。ord()函数表示取得字符对应的ASCII码。下面三种写法是相等的。

if event.type == pygame.K_a:
if event.type == ord("a"):
if event.type == 97:

ASCII码表如下:

字母 a b c ... x y z
ASCII 97 98 99 ... 120 121 122

要检测其他的按键,只需要修改下划线后的按键名。常见按键名如下:

alt 按键

pygame中的方向键:

方向 方向键代码
K_UP
K_DOWN
K_LEFT
K_RIGHT
#导库
import pygame,sys
......
while True:
    for event in pygame.event.get():               #循环检测
        if event.type == pygame.QUIT:          #退出事件判断
            pygame.quit()                  #窗口退出
            sys.exit()                  #系统退出
        elif event.type == pygame.KEYDOWN:  #检测按键按下
            if event.key == pygame.K_RIGHT: #判断按下右键
                print("按下了向右的方向键")

精确的检测某个键时,需要先判断事件的类型,按下还是抬起,然后再检测按下的键是什么。

三、退出事件QUIT

1、QUIT事件语法如下:

event.type == pygame.QUIT

用途:判断程序是否需要退出。

在程序中,我们要一直判断退出事件是否触发,然后做出相应,所以退出事件通常需要配合循环语句和条件语句使用。

pygame.QUIT中QUIT需要大写。

2、QUIT事件使用方法

#导库
import pygame,sys
......
while True:
    for event in pygame.event.get():       #循环检测
        if event.type == pygame.QUIT:  #退出事件判断
            pygame.quit()          #窗口退出
            sys.exit()             #系统退出

窗口退出:就好比我们关闭了音乐软件的界面,但音乐还在播放。

系统退出:我们退出了音乐软件。

results matching ""

    No results matching ""