web-dev-qa-db-ja.com

pygame.font.Fontで使用できるフォントは何ですか?

Pygame.font.Fontは.ttfフォントをロードするものであり、同じディレクトリに.ttfファイルがなければフォントをロードできないと思っていましたが、誰かが.ttfフォントをロードせずにフォントをロードするビデオを見てきました。同じディレクトリ内のttfフォント。同じディレクトリに.ttfファイルがなくても、pygame.font.Fontで使用できるフォントを知りたい

9
Edu Grando

一般に、pygameでフォントを使用するには、pygame.font.Font()pygame.font.SysFont()の2つの方法があります。 pygame.font.Font()は最初のパラメーターとしてフォントファイルへのパスを必要としますが、pygame.font.SysFont()はフォントの名前を含む文字列を必要とします。

pygame.font.Font()でTrueTypeフォントファイル(* .ttf)をロードできます。プロジェクトディレクトリにフォントファイル_myfont.ttf_を読み込むには、単にpygame.font.Font("myfont.ttf", size)を呼び出します。別の場所にある場合は、最初のパラメーターをファイルのパスに置き換えます。相対ファイルパスまたは絶対ファイルパスを使用できます。

または、pygame.font.SysFont("fontname", size)を呼び出してシステムフォントを使用できます。呼び出すことができるシステムフォントは、これを実行するシステムによって異なります。指定しようとしたフォントが見つからない場合、デフォルトのシステムフォントにフォールバックします。フォント名のコンマ区切りリストを渡すことができます。リストは順番に検索され、最初に使用可能なフォントが返されます。 pygame.font.get_fonts()は、システムで使用できるすべてのフォント名のリストを返します。フォントのリストは、後で使用できます。

最後に、TrueTypeフォントではないフォントファイルを読み込むには、TTF、Type1、CFF、OpenType、SFNT、PCF、FNT、BDF、PFR、およびType42フォントをサポートする_pygame.freetype_モジュールを使用できます。 pygame.freetype.Font()を呼び出してフォントファイルを使用するか、フォントモジュールと同様にpygame.freetype.SysFont()を呼び出してシステムフォントを使用できます。

そのため、フォント「Arial」を使用する必要があり、システムにインストールされている場合は、pygame.font.SysFont('arial', size)を使用して呼び出すことができます。システムにインストールしていない場合や不明な場合は、フォントファイルへのパスを直接指定できます。 pygame.font.Font("C:\Windows\Fonts\Arial.ttf",size)

13
Isa

利用可能なフォントはシステムに依存します。ただし、次の呼び出しにより、使用可能なすべてのフォントのリストを取得できます:pygame.font.get_fonts()

3
Jeremy Farrell

最初に_import pygame_を入力し、次にIDE)にprint(pygame.font.get_fonts())と入力して、現在使用可能なすべてのフォントを表示する必要があります。

2
user11365787

OS固有の観点からのいくつかの発見:

  • Windowsでは、pygame.font.get_fonts()は多数のシステムフォントを返しますが、WSLとしてインストールされたUbuntuでは、_['dejavuserif', 'dejavusansmono', 'dejavusans']_という3つのフォントのみを取得します。
  • Aerialなど、OSに依存しないフォント名は機能していないようです。
  • OSに依存しないフォントが必要な場合は、pygame.font.Font(pygame.font.get_default_font(), font_size)を使用します
0
Shital Shah