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 | arrow |
pygame.SYSTEM_CURSOR_IBEAM | i-beam |
pygame.SYSTEM_CURSOR_WAIT | wait |
pygame.SYSTEM_CURSOR_CROSSHAIR | crosshair |
pygame.SYSTEM_CURSOR_SIZENWSE | double arrow pointing northwest and southeast |
pygame.SYSTEM_CURSOR_SIZENESW | double arrow pointing northeast and southwest |
pygame.SYSTEM_CURSOR_SIZEWE | double arrow pointing west and east |
pygame.SYSTEM_CURSOR_SIZENS | double arrow pointing north and south |
pygame.SYSTEM_CURSOR_SIZEALL | four pointed arrow |
pygame.SYSTEM_CURSOR_NO | slashed circle or crossbones |
pygame.SYSTEM_CURSOR_HAND | hand |
以下语句会将游戏窗口光标设置为十字线。
pygame.mouse.set_system_cursor(pygame.SYSTEM_CURSOR_CROSSHAIR)