91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Pygame中Font模塊怎么用

發布時間:2021-11-30 12:49:46 來源:億速云 閱讀:221 作者:小新 欄目:開發技術

小編給大家分享一下Pygame中Font模塊怎么用,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

文本是任何一款游戲中不可或缺的重要要素之一,Pygame 通過pygame.font模塊來創建一個字體對象,從而實現繪制文本的目的。該模塊的常用方法如下所示:

方法說明
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 對象

Font 模塊提供了兩種創建字體(Font)對象的方法,分別是:

  • SysFont(從系統中加載字體文件創建字體對象)

  • Font(通過文件路徑創建字體對象)

下面對這兩種方法分分別進行介紹:

1) font.SysFont()

直接從系統中加載字體使用如下方法:

pygame.font.SysFont(name, size, bold=False, italic=False)
  • name:列表參數值,表示要從系統中加載的字體名稱,它會按照列表中的元素順序依次搜索,如果系統中沒有列表中的字體,將使用 Pygame 默認的字體。

  • size:表示字體的大小;

  • bold:字體是否加粗;

  • italic:字體是否為斜體。

使用示例如下:

print("獲取系統中所有可用字體",pygame.font.get_fonts())
my_font = pygame.font.SysFont(['方正粗黑宋簡體','microsoftsansserif'],50)

上述方法將優先使用“方正粗黑宋簡體”。

注意,如果要顯示中文,那么一定要使用中文字體文件,比如“方正粗黑宋簡體”,否則會出現文字亂碼的現象(編程幫三個字無法顯示)。如下所示:

Pygame中Font模塊怎么用

圖1:顯示中文亂碼

2) font.Font()

當我們想要在游戲中引入比較炫酷的字體,而系統中又不存在時,我們可以使用另外一種方法,從外部加載字體文件來繪制文本。其語法格式如下:

my_font = pygame.font.Font(filename, size)

參數說明如下:

  • filename:字符串格式,表示字體文件的所在路徑;

  • size:設置字體的大小。

使用示例如下:

f = pygame.font.Font('C:/Users/Administrator/Desktop/willhar_.ttf',50)

從桌面加載了一個字體文件來創建字體對象,并設置字體大小為 50。注意,上述字體文件是在網上下載的,您也可以任意下載(點擊網址前往),或者使用系統庫中的字體文件。

3) 字體對象方法

Pygame 為處理字體對象提供了一些常用方法,如下所示:

方法說明
pygame.font.Font.render() 該函數創建一個渲染了文本的 Surface 對象
pygame.font.Font.size() 該函數返回渲染文本所需的尺寸大小,返回值是一個一元組 (width,height)
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() 獲取字體底端到基準線的距離

使用上述方法,我們可以非常方便地對字體進行渲染,或者獲取字體的相關信息,比如字體的高度、是否是粗體、斜體等信息。

上述方法中使用最多要數第一個方法,它是繪制文本內容的關鍵方法,其語法格式如下:

render(text, antialias, color, background=None)

參數說明如下所示:

  • text:要繪制的文本內容

  • antialias:布爾值參數,是否是平滑字體(抗鋸齒)。

  • color:設置字體顏色;

  • background:可選參數,默認為 None,該參數用來設置字體的背景顏色。

下面看一組簡單的示例:

import sys
import pygame
# 初始化
pygame.init()
screen = pygame.display.set_mode((600,400))
#填充主窗口的背景顏色
screen.fill((20,90,50))
#設置窗口標題
pygame.display.set_caption('c語言中文網')
# 字體文件路徑 C:/Windows/Fonts/simhei.ttf
f = pygame.font.Font('C:/Windows/Fonts/simhei.ttf',50)
# render(text, antialias, color, background=None) -> Surface
text = f.render("網址:c.biancheng.net",True,(255,0,0),(255,255,255))
#獲得顯示對象的 rect區域大小
textRect =text.get_rect() 
#設置顯示對象居中
textRect.center = (300,200)
screen.blit(text,textRect)
while True:
    # 循環獲取事件,監聽事件
    for event in pygame.event.get():
        # 判斷用戶是否點了關閉按鈕
        if event.type == pygame.QUIT:
            #卸載所有pygame模塊
            pygame.quit()
            #終止程序
            sys.exit()
    pygame.display.flip() #更新屏幕內容

程序運行結果如下所示:

Pygame中Font模塊怎么用

圖2:顯示文本內容

除了使用上述方法之外,Pygame 為了增強字體模塊的功能,在新的版本中又加入了另外一個字體模塊,它就是 Freetype 模塊。該模塊屬于 Pygame 的高級模塊, 它能夠完全可以取代 Font 模塊,并且在 Font 模塊的基礎上又添加了許多新功能,比如調整字符間距離,字體垂直模式以及逆時針旋轉文本等(詳情可閱讀官方文檔)。

如果想 Freetype 模塊,必須使用以下方式導包:

import pygame.freetype

下面使用 Freetype 模塊來繪制文本內容,代碼如下:

import sys,pygame
import pygame.freetype
pygame.init()
# 設置位置變量
pos=[180,50]
# 設置顏色變量
GOLD=255,251,0
BLACK=0,0,0
screen=pygame.display.set_mode((600,400))
pygame.display.set_caption("c語言中文網")
f1=pygame.freetype.Font("C:/Users/Administrator/Desktop/willhar_.ttf",45)
# 注意,這里使用render_to() 來繪制文本內容,與render 相比,該方法無返回值
# 參數說明:
# pos 繪制文本開始的位置,fgcolor表示前景色,bgcolor表示背景色,rotation表示文本旋轉的角度
freeRect = f1.render_to(screen, pos,"I love c.biancheng.net",fgcolor = GOLD,bgcolor = BLACK, rotation=35)
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
        pygame.display.update()

程序運行結果如下:

Pygame中Font模塊怎么用

圖3:繪制文本內容 

看完了這篇文章,相信你對“Pygame中Font模塊怎么用”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临澧县| 阳新县| 嘉峪关市| 炉霍县| 舞钢市| 临猗县| 康平县| 新营市| 来凤县| 巴青县| 吕梁市| 金门县| 刚察县| 大港区| 辽宁省| 准格尔旗| 龙口市| 金阳县| 石棉县| 小金县| 拜城县| 手机| 壶关县| 三原县| 伊宁县| 平乐县| 伊川县| 金秀| 裕民县| 商河县| 镇江市| 阿鲁科尔沁旗| 义马市| 治多县| 肥城市| 冀州市| 图木舒克市| 梧州市| 元氏县| 龙井市| 石泉县|