Pygame詳解(十五):pygame 模組
pygame
Pygame 最頂層的包。
函式 & 屬性
- pygame.init() — 初始化所有匯入的 pygame 模組
- pygame.quit() — 解除安裝所有匯入的 pygame 模組
- pygame.error() — 標準 pygame 異常模組
- pygame.get_error() — 獲得當前錯誤資訊
- pygame.set_error() — 設定當前錯誤資訊
- pygame.get_sdl_version() — 獲得 SDL 的版本號
- pygame.get_sdl_byteorder() — 獲得 SDL 的位元組順序
- pygame.register_quit() — 註冊一個函式,這個函式將在 pygame 退出時被呼叫
- pygame.encode_string() — 對 unicode 或位元組物件編碼
- pygame.encode_file_path() — 將 unicode 或位元組物件編碼為檔案系統路徑
pygame 包是可供使用的最頂層的包。Pygame 被分成許多子模組,但是並不會影響程式使用 Pygame。
為了方便,在 pygame 中絕大多數的頂級變數被放入名為“pygame.locals”的模組中。意思是說這些變數可通過以下方式匯入:
import pygame
from pygame.locals import *
當你匯入 pygame 後,所有可用的 pygame 子模組都將自動被匯入。需要注意的是,一些 pygame 模組是“可選的”,並且可能無法使用。以防萬一,Pygame 將提供了一個佔位符物件替代原來的模組,這個物件可用來測試某些功能(變數)是否可用。
函式 & 屬性詳解
pygame.init()
初始化所有匯入的 pygame 模組。
init() -> (numpass, numfail)
初始化所有匯入的 pygame 模組,如果有模組匯入失敗也不會顯示異常,但是將返回一個元組,第一個元素為成功匯入的模組數,第二個元素為匯入失敗的個數。
也許你想分開初始化不同的模組,以提高你程式的執行速度,或者不載入暫時用不到的模組。
重複呼叫 init() 方法是沒問題的,也不會有任何負面影響。即使你已經呼叫了 pygame.quit() 解除安裝所有模組也是可以的。
pygame.quit()
解除安裝所有匯入的 pygame 模組。
quit() -> None
解除安裝所有之前被初始化的 pygame 模組。當 python 直譯器關閉時,這個方法將被無條件地呼叫,所以你的程式並不需要呼叫這個方法,除非你想要終止 pygame 資源,並繼續執行其他功能。多次執行這個方法也是沒有問題的。
注意:呼叫這個方法 pygame.quit() 會結束所有模組,但不會結束你的程式。建議用正常結束 python 程式的方法來結束 pygame 程式。
exception pygame.error
標準的 pygame 異常。
raise pygame.error(message)
當 pygame 或 SDL 操作失敗時,將會引發異常。你可以捕獲任何可預見的問題並處理異常。報告異常時,會同時顯示問題的描述資訊。
它是 RuntimeError 異常的子類,用於捕獲這些異常。
pygame.get_error()
得到當前錯誤資訊。
get_error() -> errorstr
獲取 SDL 維護的一個內部錯誤訊息。當標準 pygame.error() 標準 pygame 異常引發時,這些資訊將會提供給你。
其實你很少會使用到這個方法的啦。
pygame.set_error()
設定當前錯誤資訊。
set_error(error_msg) -> None
設定 SDL 維護的一個內部錯誤訊息。當標準 pygame.error() 標準 pygame 異常引發時,這些資訊將會提供給你。
其實你很少會使用到這個方法的啦。
pygame.get_sdl_version()
獲得 SDL 的版本號。
get_sdl_version() -> major, minor, patch
返回 SDL 庫有關版本的 3 個數字。這個版本是在編譯時生成的。這個方法可用來得知哪個元件是不能正常使用的。
Pygame 1.7.0 新新增的方法。
pygame.get_sdl_byteorder()
獲得 SDL 的位元組順序。
get_sdl_byteorder() -> int
獲得 SDL 庫的位元組順序。返回 LIL_ENDIAN 表示小端位元組順序;返回 BIG_ENDIAN 表示大端位元組順序。
Pygame 1.8 新新增的方法。
pygame.register_quit()
註冊一個函式,這個函式將在 pygame 退出時被呼叫。
register_quit(callable) -> None
當呼叫 pygame.quit() 結束所有模組時,所有通過 register_quit() 方法註冊過的函式將被呼叫。這一切都是自動執行的。
一般的 pygame 使用者用不到這個方法。
pygame.encode_string()
對 unicode 或位元組物件進行編碼。
encode_string([obj [, encoding [, errors [, etype]]]]) -> bytes or None
obj:
- 傳入 unicode 型別 -> 編碼
- 傳入 bytes 型別 -> 不變
- 傳入其他型別 -> 返回 None
- 沒有傳遞 obj 引數 -> 引起 SyntaxError 異常
encoding (string):如果存在則進行編碼,預設是 unicode_escape。
errors (string):指定如何處理無法編碼的內容,預設使用反斜槓(\)代替。
etype (exception type):指定編碼錯誤引發的異常型別。預設為 UnicodeEncodeError,由 PyUnicode_AsEncodedString() 返回。對於預設的編碼和錯誤值不應該有編碼錯誤。
這個函式被用於編碼檔案路徑的時候,支援使用關鍵字引數。
Pygame 1.9.2 新增加的方法(主要用於單元測試)。
pygame.encode_file_path()
將 unicode 或 bytes 物件編碼為檔案系統路徑。
encode_file_path([obj [, etype]]) -> bytes or None
obj:
- 傳入 unicode 型別 -> 編碼
- 傳入 bytes 型別 -> 不變
- 傳入其他型別 -> 返回 None
- 沒有傳遞 obj 引數 -> 引起 SyntaxError 異常
etype(異常型別):若給出,則出現異常時報相應編碼錯誤,預設為 UnicodeEncodeError,由 PyUnicode_AsEncodedString() 返回。
這個函式被用於編碼檔案路徑的時候,結果由 sys.getfilesystemencoding() 返回,支援使用關鍵字引數。
Pygame 1.9.2 新增加的方法(主要用於單元測試)。