[TOC]
# **pygame.mouse**
Pygame 中與鼠標工作相關的模塊。
## **函數**
* pygame.mouse.get\_pressed() —— 獲取鼠標按鍵的情況(是否被按下)
* pygame.mouse.get\_pos() —— 獲取鼠標光標的位置
* pygame.mouse.get\_rel() —— 獲取鼠標一系列的活動
* pygame.mouse.set\_pos() —— 設置鼠標光標的位置
* pygame.mouse.set\_visible() —— 隱藏或顯示鼠標光標
* pygame.mouse.get\_focused() —— 檢查程序界面是否獲得鼠標焦點
* pygame.mouse.set\_cursor() —— 設置鼠標光標在程序內的顯示圖像
* pygame.mouse.get\_cursor() —— 獲取鼠標光標在程序內的顯示圖像
這些函數可以用于獲取目前鼠標設備的情況,也可以改變鼠標在程序內的顯示光標。
當設置顯示模式之后,事件隊列將開始接收鼠標事件。當鼠標按鍵被按下時會產生 pygame.MOUSEBUTTONDOWN 事件,當鼠標按鍵被松開時會產生 pygame.MOUSEBUTTONUP 事件。這些事件包含了一個按鍵屬性,用于表示具體由哪個按鍵所觸發。
當鼠標滑輪被滾動時也會產生 pygame.MOUSEBUTTONDOWN 和 pygame.MOUSEBUTTONUP 事件。當鼠標滑輪往上滾動時,按鍵將會被設置成4;當鼠標滑輪向下滾動時,按鍵會被設置成 5。
任何時候鼠標移動都會產生一個 pygame.MOUSEMOTION 事件。鼠標的活動被拆分成小而精確的事件。當鼠標運動時,大量的運動事件會被放入相應的隊列中等待處理。沒有及時清除掉一些運動事件是隊列被塞滿的主要原因。
如果鼠標光標被隱藏并且輸入被當前顯示器占用,鼠標會進入虛擬輸入模式,在此模式內,鼠標的相關活動不會因為屏幕的邊界限制而停止。調用 pygame.mouse.set\_visible() 方法和 pygame.event.set\_grab() 方法進行設置。
## **函數詳解**
### **pygame.mouse.get\_pressed()**
獲取鼠標按鍵的情況(是否被按下)。
get\_pressed() -> (button1, button2, button3)
返回一個由布爾值組成的列表,代表所有鼠標按鍵被按下的情況。True 意味著在調用此方法時該鼠標按鍵正被按下。
注意1:獲取所有的鼠標事件最好是使用 pygame.event.wait() 方法或者 pygame.event.get() 方法,然后檢查確認所有事件是 MOUSEBUTTONDOWN、MOUSEBUTTONUP 或者 MOUSEMOTION。
注意2:在 X11 上一些 XServers 使用中間按鍵仿真機制。當你同時點擊按鍵 1 和 3 時會發出一個按鍵 2 被按下的事件。
注意3:在使用此方法前記住要先調用 pygame.event.get() 方法,否則此方法將不會工作。
### **pygame.mouse.get\_pos()**
獲取鼠標光標的位置。
get\_pos() -> (x, y)
返回鼠標光標的坐標 (x, y)。這個坐標以窗口左上角為基準點。光標位置可以被定位于窗口之外,但是通常被強制性限制在屏幕內。
### **pygame.mouse.get\_rel()**
獲取鼠標一系列的活動。
get\_rel() -> (x, y)
返回在調用此方法之前的一系列活動坐標 (x, y)。鼠標光標的相關活動被限制在屏幕范圍內,但是通過虛擬輸入模式可以突破這個限制。此頁面的頂部有虛擬輸入模式的描述。
### **pygame.mouse.set\_pos()**
設置鼠標光標的位置。
set\_pos(\[x, y\]) -> None
通過提供相應的參數來設置當前鼠標的位置。如果鼠標光標是可視的,則光標將會跳到新的坐標上。移動鼠標將會產生一個新的 pygame.MOUSEMOTION 事件。
### **pygame.mouse.set\_visible()**
隱藏或顯示鼠標光標。
set\_visible(bool) -> bool
如果返回的布爾值為 True,鼠標光標將會是可視的。返回光標在調用該方法之前的可視化情況。
### **pygame.mouse.get\_focused()**
檢查程序界面是否獲得鼠標焦點。
get\_focused() -> bool
當 pygame 正在接受鼠標輸入事件(或者用專業術語說,鼠標正在處于“active”或“focus”狀態)返回值為 True。
一般情況下此方法用于窗口模式。在全屏模式下,該方法總會返回 True。
注意:在 MS Windows 系統中,一個窗口可以同時對鼠標和鍵盤事件保持監聽。但是在 X-Windows 系統中,需要用一個窗口監聽鼠標事件而另一個窗口監聽鍵盤事件。pygame.mouse.get\_focused() 可以表示 pygame 窗口是否在接收鼠標事件。
### p**ygame.mouse.set\_cursor()**
設置鼠標光標在程序內的顯示圖像。
set\_cursor(size, hotspot, xormasks, andmasks) -> None
當鼠標光標是可視的時,它將通過我們提供的位掩碼數組顯示為一個黑白色的位圖。size 指定光標的寬度和高度。hotspot 指定光標的熱點位置。xormasks 指定一組字節,用于進行按位異或掩碼的計算。andmasks 指定一組字節,用于進行按位與掩碼的計算。
光標的寬度必須是 8 的倍數,并且提供的位掩碼數組必須與寬度、高度匹配。否則將拋出異常。
關于如何創建一個系統光標,請查看 pygame.cursor 模塊。
### **pygame.mouse.get\_cursor()**
獲取鼠標光標在程序內的顯示圖像。
get\_cursor() -> (size, hotspot, xormasks, andmasks)
獲取關于系統光標的信息。返回值是與 pygame.mouse.set\_cursor() 的傳遞參數相同的數據。
- 一、Python基礎
- 1. 序言
- 1.1 Python簡介
- 1.2 安裝和使用IDE
- 1.3 語言特性和基礎概念
- 2. 基本數據類型
- 2.2 字符串型
- 2.2.2 ASCII簡介
- 2.2.4 字符串常用函數
- 3. 條件分支
- 3.3 閑聊條件判斷和運算符優先級
- 10.正則表達式
- 【降龍十八章】Python小技巧
- 18.1 學習網址
- 18.2 PIP切換源
- 18.3 使用whl來安裝
- 【工具優化】IDE優化技巧
- Anaconda
- Jupyter Notebook 的 Markdown 添加大綱
- Jupyter Notebook中圖片縮放和居左
- Anaconda設置環境變量
- Pycharm
- PyCharm新建文檔配置
- 設置字體和字號
- 設置主題和字體配色
- 保存和導入配置
- 設置對選擇內容自動添加引號
- 推薦安裝的插件
- Markdown
- 表格格式
- 二、Python進階
- copy和deepcopy
- 《零基礎入門學習 Python 》【小甲魚版】
- 001.和Python的第一次接觸+習題復習
- 002.用Python設計的第一個游戲 +習題復習
- Pygame詳解
- Pygame詳解:前言
- Pygame詳解(一):Color類
- Pygame詳解(二):display 模塊
- Pygame詳解(三):draw 模塊
- Pygame詳解(四):event 模塊
- Pygame詳解(五):font 模塊
- Pygame詳解(六):image 模塊
- Pygame詳解(七):key 模塊
- Pygame詳解(八):locals 模塊
- Pygame詳解(九):mixer 模塊
- Pygame詳解(十):mouse 模塊
- Pygame詳解(十一):Rect 對象
- Pygame詳解(十二):Surface 對象
- Pygame詳解(十三):time 模塊
- Pygame詳解(十四):music 模塊
- Pygame詳解(十五):pygame 模塊
- Pygame詳解(十六):cursors 模塊
- Pygame詳解(十七):joystick 模塊
- Pygame詳解(十八):mask 模塊
- Pygame詳解(二十一):BufferProxy 對象
- Pygame詳解(二十三):gfxdraw 模塊
- Pygame詳解(二十五):Overlay 對象
- Pygame詳解(二十八):sndarray 模塊
- Pygame詳解(三十一):camera 模塊
- Pygame詳解(三十二):cdrom 模塊
- Pygame詳解(三十六):version 模塊
- pygame rect相關知識
- Tkinter詳解
- Tkinter 組件詳解(一):Label
- Tkinter 組件詳解(二):Button