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)
廣告