最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pygame?Font模塊使用教程

 更新時間:2021年11月30日 11:14:34   投稿:newname  
文本是任何一款游戲中不可或缺的重要要素之一,本文將主要介紹Pygame中Font模塊的使用教程,例如文本的繪制、顯示等,感興趣的同學(xué)可以了解一下

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

方法 說明
pygame.font.init() 初始化字體模塊
pygame.font.quit()? 取消初始化字體模塊
pygame.font.get_init()? 檢查字體模塊是否被初始化,返回一個布爾值。
pygame.font.get_default_font()? 獲得默認(rèn)字體的文件名。返回系統(tǒng)中字體的文件名
pygame.font.get_fonts()? 獲取所有可使用的字體,返回值是所有可用的字體列表
pygame.font.match_font()? 從系統(tǒng)的字體庫中匹配字體文件,返回值是完整的字體文件路徑
pygame.font.SysFont()? 從系統(tǒng)的字體庫中創(chuàng)建一個 Font 對象
pygame.font.Font() 從一個字體文件創(chuàng)建一個 Font 對象

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

  • SysFont(從系統(tǒng)中加載字體文件創(chuàng)建字體對象)
  • Font(通過文件路徑創(chuàng)建字體對象)

下面對這兩種方法分分別進(jìn)行介紹:

1) font.SysFont()

直接從系統(tǒng)中加載字體使用如下方法:

pygame.font.SysFont(name, size, bold=False, italic=False)
  • name:列表參數(shù)值,表示要從系統(tǒng)中加載的字體名稱,它會按照列表中的元素順序依次搜索,如果系統(tǒng)中沒有列表中的字體,將使用 Pygame 默認(rèn)的字體。
  • size:表示字體的大?。?/li>
  • bold:字體是否加粗;
  • italic:字體是否為斜體。

使用示例如下:

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

上述方法將優(yōu)先使用“方正粗黑宋簡體”。

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

圖1:顯示中文亂碼

2) font.Font()

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

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

參數(shù)說明如下:

  • filename:字符串格式,表示字體文件的所在路徑;
  • size:設(shè)置字體的大小。

使用示例如下:

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

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

3) 字體對象方法

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

方法 說明
pygame.font.Font.render()? 該函數(shù)創(chuàng)建一個渲染了文本的 Surface 對象
pygame.font.Font.size()? 該函數(shù)返回渲染文本所需的尺寸大小,返回值是一個一元組 (width,height)
pygame.font.Font.set_underline()? 是否為文本內(nèi)容繪制下劃線
pygame.font.Font.get_underline()? 檢查文本是否繪制了下劃線
pygame.font.Font.set_bold()? 啟動粗體字渲染
pygame.font.Font.get_bold()? 檢查文本是否使用粗體渲染
pygame.font.Font.set_italic()? 啟動斜體字渲染
pygame.font.Font.metrics()? 獲取字符串中每一個字符的詳細(xì)參數(shù)
pygame.font.Font.get_italic()? 檢查文本是否使用斜體渲染
pygame.font.Font.get_linesize()? 獲取字體文本的行高
pygame.font.Font.get_height()? 獲取字體的高度
pygame.font.Font.get_ascent()? 獲取字體頂端到基準(zhǔn)線的距離
pygame.font.Font.get_descent()? 獲取字體底端到基準(zhǔn)線的距離

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

上述方法中使用最多要數(shù)第一個方法,它是繪制文本內(nèi)容的關(guān)鍵方法,其語法格式如下:

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

參數(shù)說明如下所示:

  • text:要繪制的文本內(nèi)容
  • antialias:布爾值參數(shù),是否是平滑字體(抗鋸齒)。
  • color:設(shè)置字體顏色;
  • background:可選參數(shù),默認(rèn)為 None,該參數(shù)用來設(shè)置字體的背景顏色。

下面看一組簡單的示例:

import sys
import pygame
# 初始化
pygame.init()
screen = pygame.display.set_mode((600,400))
#填充主窗口的背景顏色
screen.fill((20,90,50))
#設(shè)置窗口標(biāo)題
pygame.display.set_caption('c語言中文網(wǎng)')
# 字體文件路徑 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("網(wǎng)址:c.biancheng.net",True,(255,0,0),(255,255,255))
#獲得顯示對象的 rect區(qū)域大小
textRect =text.get_rect() 
#設(shè)置顯示對象居中
textRect.center = (300,200)
screen.blit(text,textRect)
while True:
    # 循環(huán)獲取事件,監(jiān)聽事件
    for event in pygame.event.get():
        # 判斷用戶是否點(diǎn)了關(guān)閉按鈕
        if event.type == pygame.QUIT:
            #卸載所有pygame模塊
            pygame.quit()
            #終止程序
            sys.exit()
    pygame.display.flip() #更新屏幕內(nèi)容

程序運(yùn)行結(jié)果如下所示:

圖2:顯示文本內(nèi)容

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

如果想 Freetype 模塊,必須使用以下方式導(dǎo)包:

import pygame.freetype

下面使用 Freetype 模塊來繪制文本內(nèi)容,代碼如下:

import sys,pygame
import pygame.freetype
pygame.init()
# 設(shè)置位置變量
pos=[180,50]
# 設(shè)置顏色變量
GOLD=255,251,0
BLACK=0,0,0
screen=pygame.display.set_mode((600,400))
pygame.display.set_caption("c語言中文網(wǎng)")
f1=pygame.freetype.Font("C:/Users/Administrator/Desktop/willhar_.ttf",45)
# 注意,這里使用render_to() 來繪制文本內(nèi)容,與render 相比,該方法無返回值
# 參數(shù)說明:
# pos 繪制文本開始的位置,fgcolor表示前景色,bgcolor表示背景色,rotation表示文本旋轉(zhuǎn)的角度
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()

程序運(yùn)行結(jié)果如下:

圖3:繪制文本內(nèi)容?

到此這篇關(guān)于Pygame Font模塊使用教程的文章就介紹到這了,更多相關(guān)Pygame Font模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • django連接oracle時setting 配置方法

    django連接oracle時setting 配置方法

    今天小編就為大家分享一篇django連接oracle時setting 配置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python編程快速上手——PDF文件操作案例分析

    Python編程快速上手——PDF文件操作案例分析

    這篇文章主要介紹了Python 文件操作,結(jié)合具體實(shí)例形式分析了Python針對pdf文件的遍歷、讀寫、加密、解密等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2020-02-02
  • 深入解析Python中的JSON比較

    深入解析Python中的JSON比較

    進(jìn)行接口自動化時,有時候我們需要斷言的數(shù)據(jù)比較多,一個字段一個字段進(jìn)行斷言比較麻煩,那么如何利用Python實(shí)現(xiàn)輕松判斷數(shù)據(jù)格式是否相同呢,下面小編就為大家詳細(xì)講講
    2023-09-09
  • python3 requests庫實(shí)現(xiàn)多圖片爬取教程

    python3 requests庫實(shí)現(xiàn)多圖片爬取教程

    今天小編就為大家分享一篇python3 requests庫實(shí)現(xiàn)多圖片爬取教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python TCP Socket的粘包和分包的處理詳解

    python TCP Socket的粘包和分包的處理詳解

    這篇文章主要介紹了python TCP Socket的粘包和分包的處理詳解,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • Django之choices選項(xiàng)和富文本編輯器的使用詳解

    Django之choices選項(xiàng)和富文本編輯器的使用詳解

    這篇文章主要介紹了Django之choices選項(xiàng)和富文本編輯器的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python判斷空的五種方法

    Python判斷空的五種方法

    本文介紹了多種在Python中判斷變量是否為空的方法,包括if語句、len()函數(shù)、not關(guān)鍵字、bool()函數(shù)和try...except語句等,具有一檔的參考價值,感興趣的可以了解一下
    2024-12-12
  • python如何往列表頭部和尾部添加元素

    python如何往列表頭部和尾部添加元素

    這篇文章主要介紹了python如何往列表頭部和尾部添加元素,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • python pandas生成時間列表

    python pandas生成時間列表

    這篇文章主要介紹了python pandas生成時間列表,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-06-06
  • Django用戶認(rèn)證系統(tǒng) User對象解析

    Django用戶認(rèn)證系統(tǒng) User對象解析

    這篇文章主要介紹了Django用戶認(rèn)證系統(tǒng) User對象解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08

最新評論

巫山县| 淄博市| 平邑县| 桐城市| 邢台市| 枣庄市| 罗江县| 昂仁县| 抚远县| 长春市| 塔河县| 长治县| 循化| 辽宁省| 南城县| 高陵县| 明光市| 阆中市| 宣化县| 缙云县| 竹山县| 江源县| 山阴县| 绥滨县| 陆丰市| 颍上县| 彰武县| 上犹县| 运城市| 会泽县| 新龙县| 随州市| 红安县| 九龙坡区| 错那县| 米脂县| 玉屏| 八宿县| 武陟县| 高淳县| 班戈县|