ホームページ >バックエンド開発 >Python チュートリアル >Python の Pygame Font モジュール - テキストとフォントの使用方法?

Python の Pygame Font モジュール - テキストとフォントの使用方法?

PHPz
PHPz転載
2023-04-23 23:19:053411ブラウズ

Pygame のフォント テキストとフォント

Pygame は、テキストを描画するという目的を達成するために、pygame.font モジュールを通じてフォント オブジェクトを作成します。
このモジュールの一般的なメソッドは次のとおりです:

フォント モジュールの初期化をキャンセルします##pygame.font.get_init() pygame.font.get_default_font() pygame.font.get_fonts() pygame.font.match_font() pygame.font.SysFont() pygame.font.Font()
Name Description
pygame.font.init() フォント モジュールの初期化
##pygame.font.quit()
フォント モジュールが初期化されているかどうかを確認します初期化され、ブール値を返します。
デフォルトのフォントのファイル名を取得します。システム内のフォントのファイル名を返します。
利用可能なすべてのフォントを取得します。戻り値は次のとおりです。利用可能なすべてのフォント リスト
システムのフォント ライブラリからフォント ファイルを照合します。戻り値は次のとおりです。完全なフォント ファイル パス
システムのフォント ライブラリから Font オブジェクトを作成します
フォント ファイルから Font オブジェクトを作成する
# Font

モジュールは、フォント (Font) オブジェクトを作成するための 2 つのメソッドを提供します。つまり、

  • SysFont

    (システムからフォント ファイルをロードしてフォント オブジェクトを作成します) )

  • Font

    (ファイル パスを使用してフォント オブジェクトを作成)

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)

上記の方法では「Founder Bold Black Song Simplified」が優先されます。

font.Font()

ゲームにクールなフォントを導入したいが、それがシステムに存在しない場合は、代わりに次の方法を使用できます。外部からフォントファイルを読み込んで文字を描画する方法です。構文形式は次のとおりです:

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

パラメータの説明は次のとおりです:

  • filename

    : フォントのパスを示す文字列形式file;

  • size

    : フォント サイズを設定します。

  • 使用例は次のとおりです。
f = pygame.font.Font('C:/Users/Administrator/Desktop/willhar_.ttf',50)

デスクトップからフォント ファイルをロードしてフォント オブジェクトを作成し、フォント サイズを 50 に設定します。上記のフォント ファイルはインターネットからダウンロードされます。URL をクリックしてダウンロードすることも、システム ライブラリのフォント ファイルを使用することもできます。

フォント オブジェクト メソッド

Pygame は、次のようなフォント オブジェクトを処理するための一般的なメソッドをいくつか提供します。

Namepygame.font.Font.render() pygame.font.Font.size() ##pygame.font.Font.set_underline() テキストに下線が付いているかどうかを確認します太字フォントのレンダリングを開始#pygame.font.Font.get_bold() テキストが太字でレンダリングされているかどうかを確認しますpygame.font.Font.set_italic() 斜体のレンダリングを開始します pygame.font.Font.metrics() #文字列内の各文字の詳細パラメータを取得しますテキストが斜体で表示されているかどうかを確認しますフォント テキストの行の高さを取得しますフォントの高さを取得する
説明
この関数は、レンダリングされたテキスト Surface オブジェクトを作成します
この関数は、テキストのレンダリングに必要なサイズを返します。戻り値は 1 タプル (width) ,height)
テキストコンテンツに下線を引くかどうか #pygame.font.Font.get_underline()
pygame。 font.Font.set_bold()
#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('Python自学网')
# 字体文件路径 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("网址:python.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 为了增强字体模块的功能,在新的版本中又加入了另外一个字体模块,它就是 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("Python自学网")
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 python.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()

以上がPython の Pygame Font モジュール - テキストとフォントの使用方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。