<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] # **pygame.font** Pygame 中加載和表示字體的模塊。 ## **函數** * pygame.font.init() —— 初始化字體模塊 * pygame.font.quit() —— 還原字體模塊 * pygame.font.get\_init() —— 檢查字體模塊是否被初始化 * pygame.font.get\_default\_font() —— 獲得默認字體的文件名 * pygame.font.get\_fonts() —— 獲取所有可使用的字體 * pygame.font.match\_font() —— 在系統中搜索一種特殊的字體 * pygame.font.SysFont() —— 從系統字體庫創建一個 Font 對象 ## **類** * pygame.font.Font —— 從一個字體文件創建一個 Font 對象 字體模塊可以在一個新的 Surface 對象上表示 TrueType 字體。它接受所有 UCS-2 字符(’u0001’ 到 ‘uFFFF’)。此模塊為可選擇模塊,并且依賴于 SDL\_ttf。在使用之前,你需要先測試該模塊是否可用,而且對其進行初始化。 通過使用現有的 Font 對象,可以完成大多數與字體有關的工作。Pygame.font 模塊自身僅可以完成常規的初始化以及通過 pygame.font.Font() 創建 Font 對象。 你可以通過使用 pygame.font.SysFont() 函數從系統內加載字體。另外還有其他幾個函數可以幫助你搜索系統的字體。 Pygame 配備了內建的默認字體。通過傳遞 “None” 為文件名訪問此字體。 在 pygame 第一次導入之前,當pygame.font 模塊確定環境變量 PYGAME\_FREETYPE 時使用基于 pygame.ftfont 的 pygame.freetype 模塊。 Pygame.ftfont 是一個pygame.font 可兼容模塊,兼容絕大部分,除開其中某個字體模塊單元測試:Pygame.ftfont 并沒有基于字體模塊的 SDL\_ttf 的 UCS-2 字符限制,所以對于大于 ‘uFFFF’ 的碼點會產生異常。如果 pygame.freetype 是不可使用的,那么 SDL\_ttf 字體模塊將會被加載用于替代。 ## **函數詳解** ### **pygame.font.init()** 初始化字體模塊。 init() -> None 在調用 pygame.init() 時,該函數會被自動調用。 該函數用于初始化字體模塊。在使用其他任何函數前,該模塊必須被初始化。 多次調用該函數是安全的。 ### **pygame.font.quit()** 還原字體模塊。 quit() -> None 手動還原 SDL\_ttf 的字體系統。該函數會被 pygame.quit() 自動調用。 即使模塊沒有被初始化,調用該函數也是安全的。 ### **pygame.font.get\_init()** 檢查字體模塊是否被初始化。 get\_init() -> bool 如果該字體模塊已經初始化,返回 True,否則返回 False。 ### **pygame.font.get\_default\_font()** 獲得默認字體的文件名。 get\_default\_font() -> string 返回系統字體的文件名。 注意,并不是字體文件的完整路徑。 這個文件通常與字體模塊處于同一文件目錄下,但是它也可以在程序附隨的獨立文檔中。 ### **pygame.font.get\_fonts()** 獲取所有可使用的字體。 get\_fonts() -> list of strings 返回系統可使用的字體列表。 字體名將會被設置成小寫、所有的空格和標點符號也會將被刪除。 該函數在大多數系統內是有效的,但是一些系統如果沒有找到字體庫會返回一個空的列表。 ### **pygame.font.match\_font()** 在系統中搜索一種特殊的字體。 match\_font(name, bold=False, italic=False) -> path 返回字體文件在系統中的完整路徑。 如果你要搜索的字體是粗體或者斜體的,則要把 bold 參數和 italic 參數設置成 True,該函數將會嘗試去搜索一個正確的字體族。 嘗試搜索的 name 參數可以是一個用逗號隔開的列表。如果根據提供的名字沒有找到任何東西,則返回 None 。 例子: ~~~ print pygame.font.match_font('bitstreamverasans') # output is: /usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf # (but only if you have Vera on your system) ~~~ **pygame.font.SysFont()** 從系統字體庫創建一個 Font 對象。 SysFont(name, size, bold=False, italic=False) -> Font 從系統字體庫中加載并返回一個新的字體對象。 該字體將會匹配 bold(加粗)和 italic(斜體)參數的要求。 如果找不到一個合適的系統字體,該函數將會回退并加載默認的 pygame 字體。 嘗試搜索的 name 參數可以是一個用逗號隔開的列表。 ## **類 class pygame.font.Font** 從一個字體文件創建一個 Font 對象。 Font(filename, size) -> Font Font(object, size) -> Font ## **方法** * pygame.font.Font.render() —— 在一個新 Surface 對象上繪制文本 * pygame.font.Font.size() —— 確定多大的空間用于表示文本 * pygame.font.Font.set\_underline() —— 控制文本是否用下劃線渲染 * pygame.font.Font.get\_underline() —— 檢查文本是否繪制下劃線 * pygame.font.Font.set\_bold() —— 啟動粗體字渲染 * pygame.font.Font.get\_bold() —— 檢查文本是否使用粗體渲染 * pygame.font.Font.set\_italic() —— 啟動斜體字渲染 * pygame.font.Font.metrics() —— 獲取字符串參數每個字符的參數 * pygame.font.Font.get\_italic() —— 檢查文本是否使用斜體渲染 * pygame.font.Font.get\_linesize() —— 獲取字體文本的行高 * pygame.font.Font.get\_height() —— 獲取字體的高度 * pygame.font.Font.get\_ascent() —— 獲取字體頂端到基準線的距離 * pygame.font.Font.get\_descent() —— 獲取字體底端到基準線的距離 根據提供的文件名或者 python 文件對象加載一個新的字體。字體的高度是以像素為單位。如果文件名是 “None”,則加載 Pygame 的默認字體。如果一個字體無法由給定的參數加載,將會產生一個異常。一旦字體已經創建完畢,那么字體的尺寸將不能修改。 字體對象主要被用于在新 Surface 對象中渲染文本。文本可以渲染為仿真的粗體或者斜體特征,但最好是加載的字體本身就帶有粗體或者斜體字形。可以用普通字符串或者 Unicode 編碼字符來渲染文本。 ## **方法詳解** ### **pygame.font.Font.render()** 在一個新 Surface 對象上繪制文本。 render(text, antialias, color, background=None) -> Surface 該函數創建一個新的 Surface 對象,并在上邊渲染指定的文本。Pygame 沒有提供直接的方式在一個現有的 Surface 對象上繪制文本,取而代之的方法是:使用 Font.render() 函數創建一個渲染了文本的圖像(Surface 對象),然后將這個圖像繪制到目標 Surface 對象上。 僅支持渲染一行文本:“換行”字符不會被渲染。空字符(’x00’)被渲染將產生一個 TypeError 錯誤。Unicode 和 char(字節)字符串都可以被接受。對于 Unicode 字符串,僅 UCS-2 字符范圍(’u0001’ 到 ‘uFFFF’)被認為是有效的。任何編碼值更大字符的字符會產生一個 UnicodeError 的錯誤;對于 char 字符串,默認的是使用 LATIN1 編碼。color 參數決定的是文本的顏色(例如:(0, 0, 255) 表示藍色)。可選參數 background 決定了文本的背景顏色。如果沒有傳遞 background 參數,則對應區域內表示的文本背景將會被設置為透明。 返回的 Surface 對象將保持表示文本所需要的尺寸(與 Font.size() 所返回的尺寸相同)。如果將一個空字符串渲染為文本,將會返回一個空白 Surface 對象,它僅有一個像素點的寬度,但高度與字體高度一樣。 由于取決于文本背景的類型和抗鋸齒功能的使用,該函數將會返回不同類型的 Surface 對象。出于性能上的考慮,了解何種類型的圖像會被使用是很有幫助的:如果抗鋸齒功能沒有被使用,返回的圖像將采用二元調色的 8 位圖像。此時如果背景是透明的,只設置一個 colorkey 來實現;抗鋸齒圖像會被渲染為 24 位 RGB 圖像。此時如果背景是透明的,每個像素都將包含一個 alpha 通道。 優化:如果你已知文本最終將繪制在一個純色的背景上,那么文本是抗鋸齒的,你可以通過指定文本的背景色來提高性能(將文本背景色設置目標 Surface 對象的顏色)。使用這個技巧,你只需用一個 colorkey 即可保持透明信息,而不需要設置每個像素的 alpha 通道值(這樣效率會低很多)。 如果你嘗試渲染 ‘\\n’,通常是顯示為一個矩形(未知字符)。因此,你需要自己想辦法處理換行。 字體渲染并不是線程安全的行為:在任何時候僅有一個線程可以渲染文本。 ### **pygame.font.Font.size()** 確定多大的空間用于表示文本。 size(text) -> (width, height) 該函數返回渲染文本所需要的尺寸。這可以被用于在文本顯示之前,確定文本的顯示位置。當然也有助于實現自動換行和其他布局效果。 注意:大多數字體使用字距調整來調整指定字母間的寬度。例如,”ae” 的寬度并不總是等同于 ‘a’ + ‘e’ 的寬度。 ### **pygame.font.Font.set\_underline()** 控制文本是否用下劃線渲染。 set\_underline(bool) -> None 啟用后,所有字體的渲染都會包含下劃線。下劃線一般是和一個像素點一樣細,與字體尺寸無關。 該函數可以與粗體和斜體模式混合使用。 ### **pygame.font.Font.get\_underline()** 檢查文本是否繪制下劃線。 get\_underline() -> bool 如果字體下劃線被啟用,返回 True。 pygame.font.Font.set\_bold() 啟動粗體字渲染。 set\_bold(bool) -> None 該函數啟用文本的粗體渲染。該函數是通過虛擬拉伸實現加粗,對大多數字體格式來說并不是很好看。如果可能,請加載真粗體格式的字體文件。當渲染的字體為粗體時,該字體將比普通模式下更寬一些。 該函數可以和斜體及下劃線模式混合使用。 ### **pygame.font.Font.get\_bold()** 檢查文本是否使用粗體渲染。 get\_bold() -> bool 如果字體的粗體渲染模式被啟用,返回 True。 ### **pygame.font.Font.set\_italic()** 啟動斜體字渲染。 set\_italic(bool) -> None 該函數啟用文本的斜體渲染。該函數是通過虛擬傾斜字體實現斜體,對大多數字體格式來說并不是很好看。如果可能,請加載真斜體格式的字體文件。當渲染的字體為斜體時,該字體將比普通模式下更寬一些。 該函數可以和粗體及下劃線模式混合使用。 ### **pygame.font.Font.metrics()** 獲取字符串參數每個字符的參數。 metrics(text) -> list 返回一個列表,包含每個字符的屬性元組。形式如:\[(minx, maxx, miny, maxy, advance), (minx, maxx, miny, maxy, advance), …\] 元組內各個元素的含義如下圖: ![](https://img.kancloud.cn/77/9e/779e7c5f3142f661a6e956ebb9e286e0_388x253.png) 列表內不可識別的字符對應的元組內參數均為 None。 ### **pygame.font.Font.get\_italic()** 檢查文本是否使用斜體渲染。 get\_italic() -> bool 如果字體的斜體渲染模式被啟用,返回 True。 ### **pygame.font.Font.get\_linesize()** 獲取字體文本的行高。 get\_linesize() -> int 返回該字體下文本的單行的高度(以像素為單位)。 當需要渲染很多行文本時,推薦使用該返回值作為行間距。 ### **pygame.font.Font.get\_height()** 獲取字體的高度。 get\_height() -> int 返回實際渲染的文本的高度(以像素為單位)。 返回值是字體內每個字符的平均規格。 ### **pygame.font.Font.get\_ascent()** 獲取字體頂端到基準線的距離。 get\_ascent() -> int 獲取字體頂端到基準線的距離(以像素為單位)。 以防大家腦補錯方向,補充下圖: ![](https://img.kancloud.cn/ff/a2/ffa2a42782b872f9f7432e4fbb52d2f1_271x124.png) ### **pygame.font.Font.get\_descent()** 獲取字體底端到基準線的距離。 get\_descent() -> int 獲取字體底端到基準線的距離(以像素為單位)。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看