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)