ホームページ >バックエンド開発 >Python チュートリアル >Python の Pygame Font モジュール - テキストとフォントの使用方法?
Pygame は、テキストを描画するという目的を達成するために、pygame.font
モジュールを通じてフォント オブジェクトを作成します。
このモジュールの一般的なメソッドは次のとおりです:
Name | Description |
---|---|
pygame.font.init() |
フォント モジュールの初期化 |
##pygame.font.quit()
| フォント モジュールの初期化をキャンセルします|
フォント モジュールが初期化されているかどうかを確認します初期化され、ブール値を返します。 |
|
デフォルトのフォントのファイル名を取得します。システム内のフォントのファイル名を返します。 |
|
利用可能なすべてのフォントを取得します。戻り値は次のとおりです。利用可能なすべてのフォント リスト |
|
システムのフォント ライブラリからフォント ファイルを照合します。戻り値は次のとおりです。完全なフォント ファイル パス |
|
システムのフォント ライブラリから Font オブジェクトを作成します |
|
フォント ファイルから Font オブジェクトを作成する |
モジュールは、フォント (Font) オブジェクトを作成するための 2 つのメソッドを提供します。つまり、
(システムからフォント ファイルをロードしてフォント オブジェクトを作成します) )
(ファイル パスを使用してフォント オブジェクトを作成)
次のメソッドを使用して、システムからフォントを直接ロードします: pygame.font.SysFont(name, size, bold=False, italic=False)
パラメータの説明は次のとおりです:
: リストパラメータ値, システムからロードされるフォントの名前を示します. リスト内の要素の順序で検索されます. システム内のリストにフォントがない場合, Pygame のデフォルトのフォントが使用されます。
: フォントのサイズを示します。
: フォントがは太字です;
: フォントが斜体かどうか。
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)
パラメータの説明は次のとおりです:
: フォントのパスを示す文字列形式file;
: フォント サイズを設定します。
f = pygame.font.Font('C:/Users/Administrator/Desktop/willhar_.ttf',50)
デスクトップからフォント ファイルをロードしてフォント オブジェクトを作成し、フォント サイズを 50 に設定します。上記のフォント ファイルはインターネットからダウンロードされます。URL をクリックしてダウンロードすることも、システム ライブラリのフォント ファイルを使用することもできます。
フォント オブジェクト メソッド
説明 | |
---|---|
この関数は、レンダリングされたテキスト Surface オブジェクトを作成します |
|
この関数は、テキストのレンダリングに必要なサイズを返します。戻り値は 1 タプル (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) 参数说明如下:
下面看一组简单的示例: 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 サイトの他の関連記事を参照してください。