pygame 事件处理机制
事件处理需求:响应用户键盘、鼠标等外设操作、响应屏幕尺寸和模式变化、响应游戏情节的特定触发条件等等
键盘事件
event.type有pygame.KEYDOWN和pygame.UP事件
一旦事件发生就会返回event.unicode event.key event.mod这三个值,分别是键盘的unicode码,对应的按键值,和pygame.K_ALT | pygame.K_SHIFT的值
import pygame
import sys
pygame.init() # 第一部分 游戏包导入 及 游戏初始化
pygame.display.set_mode((600,400))
pygame.display.set_caption("Pygame 事件处理")
while True: #第二部分 进去消息循环、事件监听、 及 界面刷新
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.unicode == '':
print('[KEYDOWN]:','#',event.key,event.mod)
else:
print('[KEYDOWN]:',event.unicode,event.key,event.mod)
pygame.display.update()
鼠标事件
一下事件返回这些参数
MOUSEBUTTONUP:event.pos,event.button)
MOUSEBUTTONDOWN:event.pos, event.button)
MOUSEMOTION:event.pos, event.rel,event.buttons)
其中pos是绝对位置 就是笛卡尔坐标系的位置 ,
button是鼠标状态,1表示左键按下,2表示右键按下,3表示滚轮键按下,
rel 是现在事件的位置减上一个事件的位置的坐标的差值,
buttons也是鼠标状态,返回的是元组(1,0,0)表示左键按下(0,0,1)表示右键按下(0,1,0)表示滚轮键按下.
import pygame
import sys
pygame.init() # 第一部分 游戏包导入 及 游戏初始化
pygame.display.set_mode((600,400))
pygame.display.set_caption("Pygame 事件处理")
while True: #第二部分 进去消息循环、事件监听、 及 界面刷新
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.unicode == '':
print('[KEYDOWN]:','#',event.key,event.mod)
else:
print('[KEYDOWN]:',event.unicode,event.key,event.mod)
if event.type == pygame.MOUSEBUTTONUP:
print('[MOUSEBUTTONUP]:',event.pos,event.button)
if event.type == pygame.MOUSEBUTTONDOWN:
print('[MOUSEBUTTONDOWN]:',event.pos, event.button)
if event.type == pygame.MOUSEMOTION:
print('[MOUSEMOTION]:', event.pos, event.rel,event.buttons)
pygame.display.update()
;