Pygame - 鼠标事件



Pygame 识别三种鼠标事件,分别是 MOUSEMOTION、MOUSEBUTTONUP 和 MOUSEBUTTONDOWN。相应的事件对象返回鼠标按下/释放时位置的坐标和按钮编号。

例如,MOUSEBUTTONDOWN 事件对象将显示以下结果:

<Event(1025-MouseButtonDown {'pos': (398, 328), 'button': 1, 'window': None})>

示例

要获取按钮按下位置的坐标,我们可以使用与事件对象关联的 get_pos() 函数。

import pygame, sys

pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Hello World")
while True:
   for event in pygame.event.get():
      if event.type == pygame.QUIT:
         pygame.quit()
         sys.exit()
      if event.type == pygame.MOUSEBUTTONDOWN:
         pos=pygame.mouse.get_pos()
         btn=pygame.mouse
         print ("x = {}, y = {}".format(pos[0], pos[1]))

输出

运行以上代码,并在游戏窗口的随机位置按下鼠标按钮。

x = 192, y = 160
x = 419, y = 245
x = 204, y = 405
x = 449, y = 17
x = 12, y = 15

MOUSEMOTION 事件对象捕获移动鼠标位置的瞬时位置。

if event.type == pygame.MOUSEMOTION:
   pos=event.pos 
   print ("x = {}, y = {}".format(pos[0], pos[1]))

pygame.mouse 模块中其他重要的函数和属性如下:

pygame.key.get_pressed 获取鼠标按钮的状态
pygame.mouse.get_pos 获取鼠标光标位置
pygame.mouse.get_rel 获取鼠标移动量
pygame.mouse.set_pos 设置鼠标光标位置
pygame.mouse.set_visible 隐藏或显示鼠标光标
pygame.mouse.get_visible 获取鼠标光标的当前可见性状态
pygame.mouse.get_focused 检查显示器是否正在接收鼠标输入
pygame.mouse.set_cursor 设置鼠标光标的图像
pygame.mouse.set_system_cursor 将鼠标光标设置为系统变体

Pygame 定义以下系统光标:

pygame.SYSTEM_CURSOR_ARROW 箭头
pygame.SYSTEM_CURSOR_IBEAM I 形光标
pygame.SYSTEM_CURSOR_WAIT 等待
pygame.SYSTEM_CURSOR_CROSSHAIR 十字准星
pygame.SYSTEM_CURSOR_SIZENWSE 指向西北和东南的双箭头
pygame.SYSTEM_CURSOR_SIZENESW 指向东北和西南的双箭头
pygame.SYSTEM_CURSOR_SIZEWE 指向西和东的双箭头
pygame.SYSTEM_CURSOR_SIZENS 指向北和南的双箭头
pygame.SYSTEM_CURSOR_SIZEALL 四角箭头
pygame.SYSTEM_CURSOR_NO 斜线圆圈或骷髅标志
pygame.SYSTEM_CURSOR_HAND 手形

以下语句将游戏窗口光标设置为十字准星。

pygame.mouse.set_system_cursor(pygame.SYSTEM_CURSOR_CROSSHAIR)
广告