Pygame 鼠标事件是 Pygame 提供的一种事件类型,可以在用户与应用程序交互时检测鼠标事件。下面是 Pygame 鼠标事件的详细讲解:
鼠标事件类型
Pygame 支持以下鼠标事件类型:
- MOUSEMOTION:当鼠标移动时触发。
- MOUSEBUTTONDOWN:当鼠标按下按钮时触发。
- MOUSEBUTTONUP:当鼠标松开按钮时触发。
- MOUSEWHEEL:当滚动鼠标轮时触发。
鼠标位置
在鼠标事件中,可以通过 pygame.mouse.get_pos()
获取鼠标当前位置。该方法返回一个元组,包括鼠标在屏幕上的 x 坐标和 y 坐标。
鼠标按钮
在鼠标事件中,可以通过 event.button
获取鼠标事件对应的按钮。按钮编号从 1 开始,左键为 1,右键为 3,中键为 2。
示例一
下面是一个简单的示例,演示如何检测鼠标点击:
import pygame
pygame.init()
screen = pygame.display.set_mode((400, 400))
pygame.display.set_caption("鼠标事件示例")
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.MOUSEBUTTONDOWN:
if event.button == 1: # 检测左键点击
print("左键点击:", pygame.mouse.get_pos())
elif event.button == 3: # 检测右键点击
print("右键点击:", pygame.mouse.get_pos())
screen.fill((255, 255, 255))
pygame.display.flip()
pygame.quit()
上述代码创建了一个窗口,并在窗口中打印鼠标左键和右键点击事件的位置。
示例二
下面是另一个示例,演示如何跟踪鼠标移动并绘制轨迹:
import pygame
pygame.init()
screen = pygame.display.set_mode((400, 400))
pygame.display.set_caption("鼠标事件示例")
running = True
points = []
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.MOUSEMOTION:
points.append(pygame.mouse.get_pos())
screen.fill((255, 255, 255))
pygame.draw.lines(screen, (0, 0, 0), False, points, 2)
pygame.display.flip()
pygame.quit()
上述代码创建了一个窗口,并在窗口中绘制从鼠标起始位置到当前位置的线条,形成了鼠标移动的轨迹。