pygame_鼠标事件

pygame_鼠标事件

鼠标移动事件:MOUSEMOTION
event.pos: 鼠标当前坐标值(x,y),相对于窗口左上角
event.rel: 鼠标相对运动距离(x,y),相对于上一次事件
event.buttons:鼠标按钮状态(a,b,c),对应于鼠标的三个键,鼠标移动时,这三个键处于按下状态,对应的位置值为1,反之则为0

鼠标键释放事件:MOUSEBUTTONUP
event.pos:鼠标当前坐标值(x,y),相对于窗口左上角
event.button:鼠标按下键编号n,取值1/2/3分别对应三个键,鼠标左键,中键与右键。

鼠标键按下事件:MOUSEBUTTONDOWN
event.pos:鼠标当前坐标值(x,y),相对于窗口左上角
event.button:鼠标按下键编号n,取值1/2/3分别对应三个键,鼠标左键,中键与右键。

测试代码

import sys

import pygame
from pygame.locals import *

# 初始化
pygame.init()
# 创建一个窗口
pygame.display.set_mode((600, 500))

# 观察鼠标事件
while True:
    for event in pygame.event.get():
        if event.type == MOUSEMOTION:
            mouse_x, mouse_y = event.pos  # 当前坐标
            move_x, move_y = event.rel    # 相对移动距离
            print('MOUSEMOTION 鼠标移动事件', event.pos, event.rel, event.buttons)
        elif event.type == MOUSEBUTTONDOWN:
            print('MOUSEBUTTONDOWN 鼠标按下事件', event.pos, event.button)
        elif event.type == MOUSEBUTTONUP:
            print('MOUSEBUTTONUP 鼠标释放事件', event.pos, event.button)
        elif event.type == QUIT:
            sys.exit()
    # 刷新
    pygame.display.update()
上一篇:Scala之集合


下一篇:全排列[回溯] 力扣Top46全排列1(不重复数字的全排列) 力扣Top47全排列2(重复数字的全排列)