第二节 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 |
要检测其他的按键,只需要修改下划线后的按键名。常见按键名如下:
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() #系统退出
窗口退出:就好比我们关闭了音乐软件的界面,但音乐还在播放。
系统退出:我们退出了音乐软件。